一、前言
① 上线产品
② 涉及会员时长充值
③ …
这时候,权限安全就显得十分重要了,下面是公司定制的一套高可用的安全机制 v1.0
有空更新笔者的 SpringBoot 的实现代码。
二、接口安全
接口安全一般分三部分:调用方身份令牌token(防CSRF攻击)、参数签名sign(防篡改)、时效性timestamp(防Dos攻击)
一、生成规则:
- Token:用户登录时,服务器为该用户生成身份令牌token、用于刷新token的refresh_token。token有效时间为1天,refresh_token有效时间为一个月。
在使用过程中,所有接口都需要带该token。当token过期时,使用refresh_token获取新的token。当refresh_token也过期时,重新登录授权
refresh_token的作用是,代替先前获取token的手机号、openid、密码等敏感参数。
- Sign: APP请求接口时附加在url上的参数。sign = (appkey+url+所有参数按照参数名字母升序排列后键值对拼接+timestamp+appkey)
其中,参数的拼接不包括“=、&”等特殊符号,url字段主要作用在于签名RestFul接口。
例如:接口为“http://api.acb.com/def/efg
”,参数为“key1=value