HTTP-Only cookies

2018-02-24 16:04 更新

微软的 IE6 SP1 在 cookie 中引入了一个新的选项:HTTP-onlyHTTP-Only 背后的意思是告之浏览器该 cookie 绝不能通过 JavaScript 的 document.cookie 属性访问。设计该特征意在提供一个安全措施来帮助阻止通过 JavaScript 发起的跨站脚本攻击 (XSS) 窃取 cookie 的行为(我会在另一篇博客中讨论安全问题,本篇如此已足够)。今天 Firefox2.0.0.5+、Opera9.5+、Chrome 都支持 HTTP-Only cookie。3.2 版本的 Safari 仍不支持。

要创建一个 HTTP-Only cookie,只要向你的 cookie 中添加一个 HTTP-Only 标记即可:

Set-Cookie: name=Nicholas; HttpOnly

一旦设定这个标记,通过 documen.coookie 则不能再访问该 cookie。IE 同时更近一步并且不允许通过 XMLHttpRequest 的 getAllResponseHeaders() 或 getResponseHeader() 方法访问 cookie,然而其它浏览器则允许此行为。Firefox 在 3.0.6 中修复了该漏洞,然而仍旧有许多浏览器漏洞存在,complete browser support list 列出了这些。

你不能通过 JavaScript 设置 HTTP-only,因为你不能再通过 JavaScript 读取这些 cookie,这是情理之中的事情。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号