防止跨浏览器使用表单身份验证cookie

时间:2009-08-04 14:00:13

标签: asp.net

我在ASP.NET应用程序中使用表单身份验证,我意识到我可以在我已经登录后复制身份验证cookie内容,在另一个浏览器的另一个实例中手动创建cookie,之后,应用程序从第二个浏览器自动登录。

我想知道是否有办法防止这种情况(我不知道......就像使浏览器实例更喜欢认证券一样),就像现在一样,有人可以窃取cookie并在不同的计算机上使用它来访问同一个帐户而无需登录或密码。

3 个答案:

答案 0 :(得分:1)

你可以做的很多。 Jeff Prosise在这里有一篇有趣的文章tries creating an HttpModule

但是你可以看到这不是那么有效:

  

... User-Agent标头是最后一个   防线。和用户代理   标题很容易被某人欺骗   意识到User-Agent标头是   用于验证会话ID。

我个人不会因此而失眠。

答案 1 :(得分:0)

带上用户代理并将其嵌入到您的Cookie中?显然,这只有在你的cookie被加密时才有效。

例如

string plainFormCookie=GetUsername()+etc()+Request.UserAgent;
// encrypt cookie afterwards

答案 2 :(得分:0)

不,浏览器不会发送任何可用于精确定位单个浏览器实例的唯一标识符。您可以存储UserAgent字符串并验证每次用户请求页面以降低身份盗用的风险,但这不会消除它。

要建立真正安全的连接,您必须使用SSL。