我不熟悉令牌和饼干,在我看来,安全风险似乎非常好。我已经对令牌进行了一些研究,但似乎我需要将它们用作移动应用程序的一部分。
我的问题是,您是否可以根据用户的设备名称或用户移动设备独有的其他一些数据/数据生成哈希/令牌。例如,是否可以访问Android的IMEI号(可能是一个不好的例子),然后根据它生成一个哈希? (然后,可以简单地重新生成软件内的哈希值,然后如果哈希值不相同,则令牌/哈希值将无效。)
我读了一些关于跨站点请求伪造(CSRF)的内容,但它似乎并不是非常全面的证据。有没有人有办法打击代币的伪造(一些参考文献和阅读会很好)或者有任何他们恰好想到的随机想法?
基本上,我的问题归结为......有没有办法生成一个令牌,但它只能从 一个设备生效并防止伪造?
答案 0 :(得分:1)
出于以下几个原因,这是一个坏主意:
1)它会让你开放会话固定(https://en.wikipedia.org/wiki/Session_fixation)和会话重用攻击
2)如果会话遭到入侵,则无法更改令牌,这意味着如果用户遭到入侵,用户无法恢复其帐户的安全性
3)IMEI不是完全随机的。它们的熵相对较低。因此,攻击者可以简单地生成随机IMEI,对其进行哈希处理并使用它们对您的服务进行身份验证,以便在暴力攻击中访问用户的帐户。
应始终使用用户知道的内容进行身份验证,而不是他/她。
使用常规用户名/密码组合进行身份验证,然后在会话期间存储强会话ID(例如256位)。