【问题标题】:Force Chromium to use different cookie jars per page强制 Chromium 每页使用不同的 cookie 罐
【发布时间】:2018-01-07 16:57:21
【问题描述】:

我正在通过 Dev Tools 协议在无头模式下使用 Chromium,我需要实现一个系统,其中每个页面都有一个完全独立的 cookie jar,它将用于 JavaScript 和 HTTP 请求。

据我所知,浏览器本身不支持此功能,并且对其进行破解非常棘手。

如果我想在 JavaScript 中控制 cookie,我可以用我自己的 cookie 存储覆盖 document.cookie 调用。如果我想控制通过 HTTP 发送的 cookie,我可以拦截请求并修改 Cookie 标头并拦截并读取 Set-Cookie 标头。问题在于将 JavaScript 与请求同步。

有没有办法做到这一点?如果不是,那么 fork 整个事情、添加功能并重新编译源代码的可行性如何?

【问题讨论】:

  • 为新 jar 生成新的无头 chrome 可能更容易。

标签: javascript google-chrome http google-chrome-devtools


【解决方案1】:

这就是我正在做的。

我将 cookie jar 存储在节点服务器中。我将拦截网络请求中的 Set-Cookie 标头并相应地更新我的替换 cookie jar。我还将相应地修改发送到服务器的Cookie 标头。

诀窍是使用同步 XHR 请求从客户端获取和设置 cookie,因此它们都是完全同步的。基本上,我将覆盖 document.cookie 属性以向服务器发送同步 XHR 请求,以便获取/设置 cookie,而不是直接更新它们。在这些操作发生时,几乎所有请求和所有 JavaScript 都会冻结,因此不会出现任何由于异步代码而导致的问题。

【讨论】:

    猜你喜欢
    • 2017-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 2016-11-08
    相关资源
    最近更新 更多