我正在建立一个基本网站,其中登录用户向服务器发出请求。服务器有什么好的做法可以验证用户是谁?现在我每次用户登录时都会创建一个会话密钥,然后存储在数据库中。会话密钥是与当前时间连接的用户用户名的哈希值。每次用户发出请求时,他都会发送会话密钥进行验证。这种方法有安全漏洞吗?
答案 0 :(得分:0)
是的,这不是真正的安全。它被称为Security by Obscurity。
如果攻击者想要劫持一个会话,他们所要做的就是将用户名和时间一起散列并将其设置为cookie值。当然,这必须与当时登录的有效用户会话相对应,但是他们可以轻松编写脚本。
例如,如果他们想要以bob@example.com
身份登录,则只需生成bob@example.com:00:00:00
,bob@example.com:00:00:01
,bob@example.com:00:00:02
等的哈希值,直到他们找到一个会话值,允许他们访问特权页面。