扫码关注官方订阅号
认证0级讲师
我们也刚好在解决类似的问题,以下是我们设想的准备去实践的方案,欢迎讨论,难免疏漏
安全都是相对的,没有什么最安全一说,要根据具体的业务、人力、开发成本等等去综合考虑。我们目前考虑的算法hash("sha256",user_id+timestamp+salt),timestamp是时间戳,salt是加密盐,这个不知道如何解释,反正你认为是增加破解难度即可,salt尽量是带有大小写字母、字符、数字的一个固定字符串
服务器生成token以后和token失效时间一起存储在redis里面,比如失效时间为一天86400秒,然后每次请求服务器端都会检测这个token是否失效,如果失效就响应token失效状态码,客户端获取到这个状态码以后调用更新token的接口,用老的token换取服务器端重新生成的token并本地存储。然后更严谨一点的话根据产品需求设定一个超时登录时间,redis里面可以直接给key设定超时比如一个月,redis.expire(key,expiration);然后登时间到了redis就会自动删除,避免僵尸用户一直占用redis存储。另外每次登陆都会重新更新一次token
目前设想的每个用户都会有一个唯一的token,所以就算被抓包也只是获取了这个用户的所有用户数据,并不算严重,这个就是我所说的相对安全,说白了就是我们没有更多的资源用来处理这个问题使他更安全,或许后续会更新
个人建议,仅供参考
现在哪有安全性可言
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
我们也刚好在解决类似的问题,以下是我们设想的准备去实践的方案,欢迎讨论,难免疏漏
安全都是相对的,没有什么最安全一说,要根据具体的业务、人力、开发成本等等去综合考虑。我们目前考虑的算法hash("sha256",user_id+timestamp+salt),timestamp是时间戳,salt是加密盐,这个不知道如何解释,反正你认为是增加破解难度即可,salt尽量是带有大小写字母、字符、数字的一个固定字符串
服务器生成token以后和token失效时间一起存储在redis里面,比如失效时间为一天86400秒,然后每次请求服务器端都会检测这个token是否失效,如果失效就响应token失效状态码,客户端获取到这个状态码以后调用更新token的接口,用老的token换取服务器端重新生成的token并本地存储。然后更严谨一点的话根据产品需求设定一个超时登录时间,redis里面可以直接给key设定超时比如一个月,redis.expire(key,expiration);然后登时间到了redis就会自动删除,避免僵尸用户一直占用redis存储。另外每次登陆都会重新更新一次token
目前设想的每个用户都会有一个唯一的token,所以就算被抓包也只是获取了这个用户的所有用户数据,并不算严重,这个就是我所说的相对安全,说白了就是我们没有更多的资源用来处理这个问题使他更安全,或许后续会更新
个人建议,仅供参考
现在哪有安全性可言