web api安全问题

思想如下:

这里写api主要考虑三个问题:调用者身份是否合法、数据是否被篡改过、重放攻击。

1、调用者身份是否合法?

写接口时,我们可以提供appid和appsecret用于校验调用方是否为合法的用户。

appid:用户唯一标识。(作为请求参数的一部分

appsecret:用户密钥。(注:这个不放到请求参数里

2、数据是否被篡改过?

这里通过签名的方式来实现。思路就是把 appid+appsecret+timestamp+params 通过信息摘要算法(md5、sha-1、sha-256之类)进行加密,然后会得到加密串,这个加密串就是我们所说的 “签名”(作为请求参数的一部分)。这个签名也会传到后台。只要原字符串发生了改变,那么它签名结果会改变。因此通过签名就可以判断保数据是否被改动过。

params :请求参数。

3、重放攻击?

这个主要通过timestamp(时间戳)来实现。调用方每次请求的时候,会带上一个timestamp(作为请求参数的一部分),到api提供方接受这个参数,然后再和当前timestamp进行比对,如果之差超过一定时间,就作为请求失效处理。具体时间看具体业务需求。

基本思路大概就是这样。如果appsecret没有被泄露和签名没有被暴力破解的话,安全性还是有很大的保障。如果安全性要求更高的话,可以对参数做加密,到后台再解密。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值