当前位置:  开发笔记 > 编程语言 > 正文

为什么document.cookie没有显示网站的所有cookie?

如何解决《为什么document.cookie没有显示网站的所有cookie?》经验,为你挑选了1个好方法。

我去了一个使用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



1> drdaeman..:

来自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.


但有没有办法从前端以某种方式访问​​这些cookie?Cookie管理员Chrome扩展程序正在显示它们,但document.cookie没有.
@SilverRingvee,对不起,但没有.如果有办法,则应该报告和修复浏览器安全漏洞(并且是一个非常严重的漏洞).浏览器扩展是不同的事情,但是 - 它们具有比网站更高的权限,并且可以访问已经成熟的API(例如, [Chrome的chrome.cookies.getAll`](https://developer.chrome.com/extensions/cookies#method-getAll))可以查看所有Cookie.
推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有