在代码层面,对接口进行安全设计
一、使用token进行用户身份认证
用户身份认证的流程图如下:

具体说明如下:
1、 用户登录时,客户端请求接口,传入用户名和密文的密码
2、 后台服务对用户身份进行验证。若验证失败,则返回错误结果;若验证通过,则生成一个随机不重复的token,并将其存储在redis中,设置一个过期时间。
其中,redis的key为token,value为验证通过后获得的用户信息
3、 用户身份校验通过后,后台服务将生成的token返回客户端。
客户端请求后续其他接口时,需要带上这个token。后台服务会统一拦截接口请求,进行token有效性校验,并从中获取用户信息,供后续业务逻辑使用
二、使用sign防止传入参数被篡改
为了防止中间人攻击(客户端发来的请求被第三方拦截篡改),引入参数的签名机制。
具体步骤如下:
1、客户端和服务端约定一个加密算法(或MD5摘要也可), 客户端发起请求时,将所有的非空参数按升序拼在一起,通过加密算法形成一个sign,将其放在请求头中传递给后端服务。
2、后端服务统一拦截接口请求,用接收到的非可空参数根据约定好的规则进行加密,和传入的sign值进行比较。若一致则予以放行,不一致则拒绝请求。
由于中间人不知道加密方法,也就不能伪造一个有效的sign。从而防止了中间人对请求参数的篡改。

最低0.47元/天 解锁文章
166





