最近项目迁移,新订了一套接口安全规范
记录一下,欢迎大家一起讨论,拍砖。
因为业务体系原因,这里暂时只说一下基于用户需要登录才可调用的接口安全规则。
首先服务器与APP终端定义好一套加密规则,即APP通过集成在client内的加密方式可以加密传输参数。
参数加密大概规则为将参数按一定顺序打散重组,且生成一个类MD5(当然,也可以循环MD5)的不可逆sign 用于服务端校验参数有无被恶意篡改。
登录接口例:
常规接口:
/login.json?uid=1&pwd=2
加密后的接口:
/login.json?udi1w2dpstk&sign=098f6bcd4621d373cade4e832627b4f6
服务端接受到后首先将参数生成对应的sign 比对传来的sign是否一致,然后解析参数,获取真实需要的参数。
登录完成后APP将会收到一个有效期为2个小时的token ,服务端将存储这个用户与其对应的token,用于接口鉴权,失效的token是无法通过鉴权的。
APP拿着这个token既可以去进行其他的操作了。
获取用户书籍接口(加密后的):
/books.json?udi1w2dpstk&sign=098f6bcd4621d373cade4e832627b4f6&token=098F6BCD4621D373CADE4E832627B4F6
暂时先写这么多,有时间继续。
网友评论