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

来源:互联网 发布:配置windows关机了 编辑:程序博客网 时间:2024/06/07 05:37

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 0
原创粉丝点击