检测用户浏览器的最佳/最简单/最准确的方法是什么?
易于扩展和实施是一个优点.
使用的技术越少越好.
解决方案可以是服务器端,客户端或两者.但结果应该最终会在服务器上结束.
解决方案可以是框架无关的.
该解决方案仅用于报告目的.
我尝试实现基于令牌的身份验证方法:
每次成功登录都会创建新令牌.
如果用户选择"保持登录状态"或用户正在使用移动设备,则令牌将保留在Redis数据库中,而不会过期.否则,令牌将在20分钟后到期.
对用户进行身份验证后,将从Redis数据库中的每个后续请求中检查令牌.
我想知道如何识别设备.对于移动设备,我可以使用设备标识符.但是如何识别浏览器呢?
示例:用户使用Chrome登录并选择"保持登录状态".使用Redis中的浏览器名称生成并保留令牌.如果用户从Firefox登录,则将令牌和"Firefox"保存在数据库中.我在Redis中保存令牌,而在成功验证时创建令牌.是否可以仅使用令牌和使用令牌的浏览器?或者我是否还需要持久保存IP?
其他问题:如何避免攻击者从cookie中窃取令牌?