在我的网络应用上,我按以下方式处理身份验证:
用户输入了他的电子邮件和密码
在db中搜索用户,匹配bcrypt加密密码?
如果是这样,新的会话记录将存储在数据库中,它是用户ID和128位随机密钥。此密钥也作为“安全”,“仅限http”cookie存储在客户端上。
每当用户向Web应用程序发出请求时,密钥都是在db中搜索会话的引用。如果有会话 - >认证
会话在一定时间后删除(例如3小时)
注意:所有请求都是SSL加密的。
您是否认为此身份验证过程存在任何缺陷?使用它可能会有什么危险?
谢谢!
利亚
答案 0 :(得分:1)
我可以在这里看到两个DoS攻击场景。
您没有触及的一点是,您何时会使会话过期 - 如果用户没有注销,您何时会从表中清除会话ID?如果会话ID同时从cookie中被劫持怎么办?