表单身份验证比在ASP中存储用户身份更安全吗?NET_session(会话劫持)



从我对会话劫持工作方式的理解来看,我没有看到表单身份验证比在ASP中存储用户身份验证信息有任何优势。网络会议。表单认证和ASP。. NET会话使用的cookie都经过散列来验证完整性,但两者都无法防止黑客窃取cookie并伪装成用户。那么,就安全性而言,是否有任何理由使用表单身份验证而不是在ASP中存储身份验证信息?网络会议?

几个区别:

如果你在会话状态中存储身份验证信息,并且应用程序池循环,所有用户都会立即注销。相比之下,表单身份验证将必要的信息以加密格式保存在表单身份验证cookie中,并将在应用程序池循环中存活下来。

会话id是一个120位的随机数。唯一的保护就是随机性。没有防篡改,事实上,黑客可以不断地用随机会话id轮询您的网站,直到他找到一个有效的。对于这类活动没有入侵检测机制,因为不可能区分被篡改的会话ID和过期的会话ID。

表单认证票据(cookie)是完全不同的。它由一长串数据组成,然后用128位机器密钥进行加密。如果有人篡改它,它就无法解密。解密失败是一个可捕获的错误,可以在入侵检测机制中调用。票证的总体基数要高得多,也更难以暴力破解。

在我最近工作过的所有网站上,我们实际上都使用表单身份验证机制和asp.net sessionid。我们还有一个内部会话ID (ESB会话标识符),我们将其插入到表单身份验证票据中。

关于使用Forms Authentication而不是在Session中存储身份验证信息,我听到的唯一有趣的论点是,我可以对Forms Auth cookie(过期日期等)施加更多限制,但对Session cookie却没有。所以用户偏好之类的东西会在会话中保留,即使用户在30分钟后被迫再次登录也不会丢失。我不知道

相关内容

  • 没有找到相关文章

最新更新