APP调用服务器API安全设计
1、登录(发送用户名密码/APPID SECRET 加密串)获取TOKEN,(TOKEN作用就是为了对应UID,是已登录过的标识,后续请求都要带上)
2、发送其他请求时将参数按约定排序(加上TIMESTAMP(用来判断TOKEN是否超时) TOKEN参数),加上SECRET进行MD5加密SIGN签名,这样别人无法伪造修改URL
和WEB系统的区别?
WEB登录是SESSION机制,依赖客户端的COOKIE,APP中如果要用SESSION要自己维护COOKIE且关闭APP后COOKIE会被清空。
浏览器请求每次都会带上COOKIE,效率低
数据包被监听重放攻击?
关于防止重放攻击,目前主流做法,要求通信双方必须事先协商一个初始序列号,并协商不易被破解的递增方法
获取服务器保存一个上次访问时间,如果后来的访问比这个前就是非法
用户密码脆弱MD5容易被破解?
系统设置一个固定的盐值,该盐值最好足够复,拼接后再进行2次MD5
1、登录(发送用户名密码/APPID SECRET 加密串)获取TOKEN,(TOKEN作用就是为了对应UID,是已登录过的标识,后续请求都要带上)
2、发送其他请求时将参数按约定排序(加上TIMESTAMP(用来判断TOKEN是否超时) TOKEN参数),加上SECRET进行MD5加密SIGN签名,这样别人无法伪造修改URL
和WEB系统的区别?
WEB登录是SESSION机制,依赖客户端的COOKIE,APP中如果要用SESSION要自己维护COOKIE且关闭APP后COOKIE会被清空。
浏览器请求每次都会带上COOKIE,效率低
数据包被监听重放攻击?
关于防止重放攻击,目前主流做法,要求通信双方必须事先协商一个初始序列号,并协商不易被破解的递增方法
获取服务器保存一个上次访问时间,如果后来的访问比这个前就是非法
用户密码脆弱MD5容易被破解?
系统设置一个固定的盐值,该盐值最好足够复,拼接后再进行2次MD5
对业务数据双方都用APPID SECRET进行对称加密更安全,如果使用HTTPS传输更难破解
服务器对于超过一定次数错误请求的让TOKEN失效
客户登录时服务器除了返回TOKEN,也可以返回附加的证书服务器合法性的字段