互联网开发--HTTP接口安全设计

http接口安全设计的必要性

作为http接口的服务端,要能控制你本身自有数据的读写权限。
如果任何客户端在任何时间都能读写你的数据,那么用户数据很容易被修改。这就好比没加用户登录就可以访问和读写所有的系统数据。根本没有安全性可言了。

安全设计方案

方案1:(加密时间戳+可变的加密串)进行安全控制
原始请求:
http://www.zsfy.com/layy/getLayyList.htm?layyId=1001
安全控制后的请求:
http://www.zsfy.com/layy/getLayyList.htm?layyId=1001&timestamp=543fafaf678vnkdnfgsakjfdf676&key=HGYT65475Gt57UABNJKH677677KKJJ

时间戳timestamp说明:
(1)作用是:固定时间范围内,减少同一请求被暴力调用的次数。
(2)客户端请求里加上时间戳传到服务端。服务端获取时间戳与当前时间做比较,如果时间相差3分钟,则拒绝访问本接口。
(3)时间戳的作用可以理解为给接口加了个有效期,超过这个有效期就不能再使用了。主要作用就是防止黑客暴力调用。
(4)注意客户端服务器与接口服务器的时间要进行校准,保持一致;否则有效期会不对,导致接口无法正常使用。
(5)时间戳要进行加密传输。因为数据加密后是没有规律可循的,防止黑客模拟数据,进行非法请求。
加密串key说明:
(1)可变加密串组成:(可变字符串+固定字符串)。采取某种加密算法对(可变字符串+固定字符串)进行加密。
(2)如果没有可变字符串,只是对某固定字符串加密,数据很容易被黑客模拟,进行非法调用。
(3)如果没有固定字符串,只是对某可变字符串加密,万一黑客通过各种测试,知道了key加密的规则,那么客户端给的key在服务端校验总是ok的,接口就并非是安全的了。添加某固定的加密串,增加了黑客破解难度,提高了接口调用的安全性。
(4)客户端与服务端约定好加密串里”可变字符串“和”固定字符串“以及加密算法。服务端接收客户端的字符串,根据约定好的协议自己生成加密串,再与客户端的作比较,一致的话可以调用接口,否则不能调用接口。
比如加密串生成规则如下:md5(layyId+”helloword”)
生成规则为参数layyId的值和某个约定的字符串helloword经过md5编码后的值。
(5)加密算法也可以自定义,不过要注意性能问题,加密时间不要太长。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值