ASP.NET中的会话劫持对策

3

我希望采取措施来防止/减轻会话劫持。因此,我想了解选项,无论是来自内置的ASP.NET还是自定义组件。

请注意,会话劫持是指Forms Auth sessionSession State

我的ASP.NET在所有页面上都使用HTTPS。但是,一旦第三方获得会话cookie id(例如从用户的硬盘,跨站点脚本攻击和中间人攻击等方式),会话可能会被破坏。

特别是,我担心会话ID劫持,因为我的项目始终使用https。

以下是我查看的链接,这些链接是几年前编写的:

Foiling Session Hijacking Attempts Jeff Prosise 请参考其缺点部分。

我在网上找不到太多相关信息,或者与Jeff的信息不同。


1个回答

0
这里有几个建议:
  1. 使用盐来保护你的sessionId。这将确保您拥有唯一的会话ID,虽然我很确定默认的ASP.NET会话ID已足够满足您的需求,但为了增强安全性,您可以使用您可以控制或自我识别的内容。例如,您可以使用GUID作为盐-通过更新GUID以适应您的需要而进行控制。
  2. 跟踪SessionId和用户IP地址,将它们配对存储在字典对象中。这将使您能够将会话ID与IP地址匹配,并揭示任何发生在用户LAN之外的会话劫持。显然,它并不是完美的,因为如果用户的计算机或路由器被感染,就不会起到多大作用,但至少它将使攻击者更难完成任务。

如果用户的计算机被感染,您不确定该怎么做,但无论是否增加防御措施,风险都存在。


一个邪恶的第三方如何阻止使用你在第一点提到的相同会话ID?它仍然有效,只是生成方式已更改。正如你所提到的,当IP地址发生变化(漫游移动用户)和人们共享地址(谷歌代理服务器)时,第二点存在缺陷。 - sisve

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接