WEB API的安全问题

web server里的的application提供给APP,浏览器,第三方调用等客户端的的接口大多采用http协议,如何做到保证接口的数据安全,接口权限验证有如下一些方案:

 

一。请求被恶意频繁执行

为了防止接口被其他未知客户请求, 可以采用签名的方式对接口进行保护。

 

原理:

接口 www.a.com/b/c?d=e&f=g

该接口很容易被客户模拟请求的方式频繁请求。

改为 www.a.com/b/c?d=e&f=g&sign=1213xxx&timestamp=12332132key="321dss"

 

sign是该请求的签名,服务器端验证签名,如果签名正确 则对请求进行处理。

也可以把所有参数按规则排序后进行MD5加密后做签名,可以防止请求数据被篡改。

 

首页为客户端分配一个私钥。

sign算法:sign = MD5( 时间戳+私钥)。

服务器端限制改签名的有效时间为时间戳+10分钟,就可以保证该签名只在10分钟内有效。

为了区别不同客户端的私钥,通常还会为用户分配一个key。

 

问题:1.客户端时间不准确,导致在服务器端校验时 时间戳不在有效范围内。

2.市区不同 时间戳不同。

一些短信平台,地图,云存储平台对客户的接口访问采用该方式对接口进行

通常会为用户分配一个key对用户进行识别,在请求的时候携带此key作为用户识别。

 

 

二。数据被抓包窃取。

1. HTTPS 保证数据在传输中不被中间人获取。

2. 密码等数据在客户端进行对称加密后进行传输

3. 对于一些安全要求高,但并发不高的请求,可以对所有请求参数进行对称加密。

 

 

三。API 的授权问题

参考OAUTH2 模型。

结合微信的网页授权模式。

角色: 授权服务器,资源服务器,用户,请求客户端

 

四。恶意攻击

1.ngnix拦截

2.

 

转载于:https://my.oschina.net/zhaolin/blog/1810506

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值