2011-11-29 77 views
1

我读了一些关于会话劫持的文章。黑客嗅探cookie并从那里获取会话ID。但我认为会话ID作为加密值存储在cookie中。是不是? 是否可以轻松解密?关于ASP.NET中的会话劫持和保护

其他敏感数据存储在会话cookie中......请说明。无论我们存储在会话变量中,是否存储在会话cookie中的服务器端代码中......是对的?

请指导我关于会话cookie和什么是保护会话劫持的最佳方法。谢谢

回答

1

这个想法是,他们得到会话cookie并按原样使用它,将其发送到服务器,服务器将cookie连接到受害者会话。实际上,会话cookie上没有数据,只是会话ID的加密号码。

现在有一种情况是,存储在cookie上的敏感数据是currenct用户的角色。为避免可能的解密和对web.config的更改<roleManager cacheRolesInCookie="false"

另外关于身份验证cookie和角色管理器总是使用requireSSL =“true”,所以它不可能窃取身份验证的cookie,但是您必须使用安全这个网页使工作。

有些人可以偷走关键会议。如果程序员在会话ID上依赖显示给用户的关键数据,则可以完成此操作。例如,如果您将电话号码和名称存储在会话变量中并向用户显示,则有人可以窃取整个网页并阅读它(如果不是ssl)。如果您已将会议ID连接到后台和隐藏管理页面的访问权限,那么如果有人窃取会话cookie并打开页面,则他可以访问管理员后台页面。

因此,它决定不存储会话数据上的关键信息,并始终使用ssl页面来管理和获取发送cookie关键数据。

现在,如果黑客窃取了会话cookie,并且您刚刚存储了用户在以前的页面中看到的内容,那么像亚马逊这样的产品的历史记录就没有什么大不了,因为仍然无法将此历史记录与用户关联起来,任何人都会嗅到用户看到的网址。

当然,它也取决于您不要在任何未加密的cookie上存储关键数据!

因此,您将数据拆分为关键部分,而不是关键部分,并始终将SSL用于关键页面和Cookie,并且绝不相信来自不安全页面的数据。您可以阅读: Can some hacker steal the cookie from a user and login with that name on a web site? 希望这可以帮助你。

1

ASP.NET cookie存储Session IDAuthorization Ticket;然而,问题不在于是否可以解密cookie,而是要能够创建一个具有相同值的服务器,并诱使服务器相信您的原始cookie的副本是真实的。

HTTP协议是stateless,因此客户端和服务器不维护彼此的信息。会话Cookie(使用会话ID和授权标签)是他们如何跟踪彼此。 Web服务器知道哪个会话ID附加到哪个授权凭单,并且如果您可以提供这些值的有效对,Web服务器将高兴地接受它。Web服务器使用对称加密算法和自动生成的密钥(默认设置)加密cookie。如果需要,可以通过修改machine.config文件中的相应部分来调整这些设置。