我去了一个使用vBulletin 3.8的论坛。当我登录时,我使用firebug来查看设置了哪些cookie。我看到这些饼干:
__ utmb,__ utmc,__ utma,__ utzz,bbsessionhash,vbseo_loggedin,bbpassword,bbuserid,bblastactivity,bblastvisit
他们都有一个值集,域名是相同的。
但是当我使用JavaScript查看它们时,它只看到了这些cookie:
__ utmb,__ utmc,__ utma,__ utmz,vbseo_loggedin,bblastactivity,bblastvisit
在萤火虫中,我只看到这三个饼干:bbsessionhash,bbpasword和bbuserid,它们实际上是设置的。在HTTPOnly列中的HTTPOnly。这是什么意思,是因为我无法使用document.cookie
在JavaScript中看到这些Cookie?
答案 0 :(得分:80)
来自http://en.wikipedia.org/wiki/HTTP_cookie:
Cookie不会直接显示 客户端程序,如 如果已发送JavaScript,则为JavaScript HttpOnly旗帜。从这一点来说 查看服务器,唯一的 与正常人的差异 case是set-cookie标头 line添加了一个包含的新字段 字符串`HttpOnly':
Set-Cookie: RMID=732423sdfs73242; expires=Fri, 31-Dec-2010 23:59:59 GMT; path=/; domain=.example.net; HttpOnly
当浏览器收到这样的 cookie,应该用它作为 通常在以下HTTP交换中, 但不要让它可见 客户端脚本。
HttpOnly
标志不是任何标准的一部分,并未在所有浏览器中实现。
2017年更新:自2009年以来已经过去了很多时间,HttpOnly
标头标志成为section 5.2.6 of RFC6265中定义的标准,其中描述了存储语义在同一文档中(在整个RFC文本中查找“http-only-flag”)。
没有方式可以从“非HTTP”API访问有关HttpOnly
Cookie的任何内容,例如: JavaScript的。按照设计,既不能阅读也不能写这样的cookie。
答案 1 :(得分:0)
可以将此扩展名用于取消选中HttpOnly
,然后在JavaScript https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg
document.cookie