我去了一个使用vBulletin 3.8的论坛.当我登录时,我使用firebug来查看设置了哪些cookie.我看到这些饼干:
__utmb,__ utmc,__ utma,__ utmz,bbsessionhash,vbseo_loggedin,bbpassword,bbuserid,bblastactivity,bblastvisit
它们都有一个值集,域名是相同的.
但是当我使用JavaScript查看它们时,它只看到了这些cookie:
__utmb,__ utmc,__ utma,__ utmz,vbseo_loggedin,bblastactivity,bblastvisit
在萤火虫中,我只看到这三个饼干:bbsessionhash,bbpasword和bbuserid,它们实际上是设置的.在HTTPOnly列中的HTTPOnly.这是什么意思,是因为我无法在JavaScript中看到这些cookie document.cookie
?
来自http://en.wikipedia.org/wiki/HTTP_cookie:
如果已经使用HttpOnly标志发送了Cookie,则客户端程序(如JavaScript)不会直接显示Cookie.从服务器的角度来看,与正常情况相关的唯一区别是set-cookie标题行添加了一个包含字符串"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
标头标志成为标准,在RFC6265的5.2.6节中定义,具有在同一文档中描述的存储语义(查找"http-only-flag"整个RFC文本).
有没有办法访问有关的任何HttpOnly
从"非HTTP"的API,如JavaScript的饼干.按照设计,既不能阅读也不能写这样的cookie.