1.参数加密,h5加密,api接口解密
2.签名算法验签,用户端服务端设计一个签名算法,进行校验
3.针对登录用户,生成一个token,(ip+uid+时间戳),存在数据库,只在登录期间有效。配合Linux和数据库的权限管理可以防外又防内。ps:(token一段时间需要更新)
4.接口返回尽量是json数据,不返回null,根据需求返回需要的数据。
5.用时间戳和用户uid生成一个token,将接口请求过的token保存 到独立文件,进行校验,如果token相同表示不是正常调用,因为时间戳不可能是相同的。
PHP做APP接口时,如何保证接口的安全性?
1、当用户登录APP时,使用https协议调用后台相关接口,服务器端根据用户名和密码时生成一个access_key,并将access_key保存在session中,将生成的access_key和session_id返回给APP端。
2、APP端将接收到的access_key和session_id保存起来
3、当APP端调用接口传输数据时,将所传数据和access_key使用加密算法生成签名signature,并将signature和session_id一起发送给服务器端。
4、服务器端接收到数据时,使用session_id从session中获取对应的access_key,将access_key和接收到的数据使用同一加密算法生成对应signature,如果生成的签名和接收到的signature相同时,则表明数据合法
列出一些防范SQL注入、XSS攻击、CSRF攻击的方法
- SQL注入: addslashes函数 PDO预处理
- XSS:htmlspecial函数
- CSRF:验证HTTP REFER 使用token进行验证
csrf和xss的区别
csrf 跨站请求攻击。验证码、token、检测refer
xss 跨站脚本攻击,htmlspecial过滤用户输入。
解决接口跨域问题:
- header('Access_Control_Allow_Origin : '*' ')
- jsonp 客户端发送ajax请求时,声明数据类型和jsonp。同时在服务器端返回的时候要加上json jsonCallback