Javascript chrome扩展:抓取url选项卡下的所有跨域cookie?

Javascript chrome扩展:抓取url选项卡下的所有跨域cookie?,javascript,cookies,google-chrome-extension,Javascript,Cookies,Google Chrome Extension,我只能抓取具有相同域的cookie,但是当您在chrome开发工具中查看cookie时,您可以在右侧的同一url树选项卡下看到一组具有不同域值的cookie,如下所示。例如,带圆圈的cookie来自不同的域,但显示在developer.chrome.com下 我的问题是,如何从具有不同域值的域选项卡中提取所有cookie chrome.cookies.getAll({'url': "http://developer.chrome.com"}, function (cookies) {

我只能抓取具有相同域的cookie,但是当您在chrome开发工具中查看cookie时,您可以在右侧的同一url树选项卡下看到一组具有不同域值的cookie,如下所示。例如,带圆圈的cookie来自不同的域,但显示在developer.chrome.com下

我的问题是,如何从具有不同域值的域选项卡中提取所有cookie

    chrome.cookies.getAll({'url': "http://developer.chrome.com"}, function (cookies) {
        if (cookies) {
            console.log(cookies); //will only pull cookies with domain value developer.chrome.com
        }
    });

您可以通过访问
document.cookie
读取所有cookie并进行相应的解析


请参见示例

您需要检查选项卡上的请求,以查看哪些请求是跨域cookie

为了访问网络api,您需要进行DevTools扩展

在此,您需要提出以下请求:

chrome.devtools.network.getHAR()
这将记录json关于正在进行的网络请求。
在该json中,您可以访问cookie对象。json基于HAR规范。

文档。cookie
不会让您从脚本访问cookie,除非您尝试访问其cookie的web应用程序未设置
HttpOnly
标志

此外,除非存在XSS或类似漏洞,否则不能跨域发出
cookie请求


上面提到的Chrome扩展似乎能够检查所有浏览器流量(跨域)并从该流量中提取cookie,尽管我自己没有尝试过,所以在这一点上可能是错误的。

cookie怎么可能来自另一个域,这不是违反了规则吗?例如,从facebook跟踪Cookie并在显示时将域值设置为“.facebook.com”或“.linkedin.com”。当您使用
getAll
时,它似乎不会抓取在同一url上设置的这些cookie。例如,circle cookie的域值为“.somewhere.com”,因此无法获取该值。仅通过URL,您无法预测文档将加载哪些跨域资源(以及因此而加载的cookie)。我明白了。不管怎么说,你是不是想抓住文件里的所有cookie?这很难,因为有很多方法可以通过iframe、js、pixels等加载cookie。Market it fav明天将对此进行研究。这似乎不是一个小问题,到目前为止,我一直设法检索cookies,但我看不到在页面上下文中检索cookies的简单方法。闻起来像是
tab
功能。我有足够的声誉知道为什么我的答案被降级了吗?我认为否决票是不符合要求的。问题的清晰性是罪魁祸首。不要在答案中留下你答案的旧版本,除非它对新答案很重要。这就是编辑历史的目的。