背景
1、接口请求地址和参数暴露
2、重要接口返回数据明文暴露
3、APP登录态请求的数据完全性问题
4、代码层的数据完全问题
如何解决
加密及加密方式:MD5 AES RSA
如何做?
1、基本参数放入header
2、每次http请求都携带sign验签
3、sign唯一性保证
4、请求参数、返回数据安全性适当加密
5、access_token
移动端登录
手机号加密码登录/手机号加验证码登录
AES/OPENSSL加密解密算法的使用
SIGN签名算法生成
sign加密需要前端工程师编写,sign解密需要后端工程师编写
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
/** * 生成每次请求的sign * @param array $data */ public static function setSign($data=[]) { //1、按字母按序 ksort ksort($data); //2、把数组按字符串形式&拼接 $string = http_build_query($data); //3、通过openssl 来加密 $string = oencrypt($string, config('openssl_key')); return $string; } |
SIGN签名算法校验
SIGN时间戳校验
SIGN唯一性 1、文件缓存;2、mysql;3、redis
把sign写入,进行判断是否已经有了
APP和服务器端时间一致性解决方案
app时间和服务器时间不一致
解决方法:获取服务端时间,对比app时间补差
转载请注明:PHP笔记 » APP接口开发API数据安全解决方案