通常接口安全性都是指的客户端与服务端交互,但是这里额外研究一下直接通过浏览器和服务端交互的方式。
需要防止的内容
- 被其他人调用
- 被篡改请求
- 被替换返回结果
- 接口被重放
可以采取的措施
传输层
HTTPS 加密
IP 白名单
应用层
用户鉴别机制主要用于防止其他人调用:预先分配 token/appKey 等参数加在请求中,供服务端识别请求来源
时间戳超时机制主要用于防止接口被重放:接口中添加时间参数和唯一字符串,拒绝超时的请求,拒绝一定时间内已经请求过的的请求
参数/返回值加密主要用于防止数据被更改:将请求的参数加盐加密生成参数签名,在服务端重新计算参数签名进行比对