API安全-临时记录
1.API安全
(1)签名(sign)
(2)令牌(token)
(3)过期时间
(4)超时时间
接口说明:获取会员个人资料
接口地址:http://v1.api.tomener.com/member/profile
请求方式:GET
请求参数:
1.id(会员ID)
2.t(当前时间戳)
3、sign(签名)
4、token
返回的值:
一般我们在设计API的时候,都会有个签名,就是一个将参数加密之后的字符串,我们叫sign
具体生成签名的算法可以参考支付宝
之前的API大概是这么设计的,但是,如果用wireshark或tcpdump工具截获了请求,
那么别人就可以通过这个永久的获取会员的信息了,所以,我想应该有个时间限制,比如这个请求在6秒之内有效,那么,我们就应该再传一个参数t(当前时间戳)。
这时候,问题来了,客户端的时间和服务端的时间是不一致的
我的解决方法:
客户端登录的时候获取服务端的时间戳和自己的时间戳对比,看相差了几秒并保存这个差值,请求的时候慢了几秒就加几秒,快了几秒就减几秒
API得到请求后:
1、判断是否过期
2、判断sign是否有效
3、参数的合法性验证
1.调用接口需要授权,授权之后 使用方拿到 用户名 token 等授权信息
2.使用方调用接口 参数包含: 用户名 token或者签名儿 等接口参数
3.可以设置token的过期时间和token调用次数限制
4.可以记录每个用户的调用次数 调用记录