一、API接口存在的安全问题
- 数据被抓包窃取
- 数据被调包篡改
- 数据被爬取泄漏
1.数据加密
- 对称加密: DES、AES
- 非对称加密:RSA
说明:①私钥只有我自己知道 ②共钥大家都知道 ③ 公钥加密的数据串,只有我能解
https的过程: ①对称加密 传输网络数据--对称加密的传输安全不能保障
②秘钥--会用非对称加密来传输对称秘钥
2.数据加密解决了数据上行的安全,然而黑客,直接抓密文来提交,怎么办?
①rsa加密时,带上时间戳 ②设置过期时间,服务器检验时间戳,与当前时间相减,要求差异不超过2分钟
设置黑名单---客户端生成密文--集合保存起来(这个密文使用过了,不能再使用了)
二、接口验签
通过MD5加盐算法生成签名
三、Token
- token + time 上行加密,网络传输的加密串需要变
- time有效值,与当前系统时间,时差不能超过5分钟?
身份认证的封装---cookie隐藏携带token
cookie的底层机制--特殊的header
- 使用TokenFilter同一处理
- 登录成功,服务器直接设置token到cookie中
- 客户端请求时,需要送token值的加密串到服务器
总结
- rsa加密,带上时间
- MD5对接口做签名---加上时间校验
- 登录认证,token--加上时间校验
- cookie方式隐式传token
- 使用filter过滤器,整个api接口加认证过滤