javascript - Chrome 扩展程序不发送 SameSite=Lax cookie

标签 javascript cookies google-chrome-extension httponly samesite

我在通过弹出脚本的 chrome 扩展处理 cookie 时遇到了一些问题。

popup.js 内容:

document.addEventListener('DOMContentLoaded', () => {
    function cookieinfo() {
        chrome.cookies.getAll({url: 'http://localhost:8080'}, function(cookie) {
            console.log('Found cookie: ', cookie)
            if (cookie == null)
                return;

            fetch('http://localhost:8080', {credentials: 'include'}).then((response) => {
                // do some stuff
                return response;
            });
        });
    }
    window.onload=cookieinfo;
}, false);

我执行的步骤:

  1. 在本地主机上登录我的应用程序(所以我得到了 cookie)
  2. 打开弹出窗口(因此执行 popup.js)
  3. 我在控制台日志中看到 chrome 找到了必要的 cookie
  4. 服务器说传入请求有空 cookie
  5. 我刷新本地主机应用程序的页面
  6. 我现在退出了

也许有人知道我做错了什么?

编辑:

看来原因是我的 cookie 有参数 HttpOnly=trueSameSite=Lax ( related link )。我可以在服务器日志中看到另一个 cookie。但由于 this thread如果 credentials 参数设置为 include,将发送所有 cookie,甚至是 httpOnly cookie。由于 this answer,我还尝试将它发送到 127.0.0.1 而不是本地主机结果相同。

我无法将 httpOnly 设置为 false。这是框架强制的。有人知道如何解决吗?

编辑2:

我终于安装了 Cookie 编辑器,发现是 SameSite=Lax 的原因。如果我将它设置为 No Restriction,那么我将在服务器端看到它。不幸的是,我使用的框架只允许 LaxStrict 选项(Chrome 扩展失败了)。有谁知道如何从 Chrome 扩展程序发送 Lax cookies?

最佳答案

这是 Chromium 77 版之前的扩展问题。当跨站点 cookie 设置为 SameSite=LaxSameSite=Strict 时,不会发送 cookie与跨站请求。

此问题已在所有平台的版本 78 中得到修复。现在,Chrome 扩展在 SameSite=LaxSameSite=Strict 时发送 cookie。

引用资料:

https://bugs.chromium.org/p/chromium/issues/detail?id=1007973

https://chromium-review.googlesource.com/c/chromium/src/+/1827503

https://bugs.chromium.org/p/chromium/issues/detail?id=617198

关于javascript - Chrome 扩展程序不发送 SameSite=Lax cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51731231/

相关文章:

cookies - 无法使用 Safari 连接到 AWS Cloud9 IDE

javascript - Chrome.i18n 是否有标准格式的 message.json

javascript - Discord 仅识别 discord.js 中的 "ping"命令

javascript - jquery javascript - 将脚本标记添加到 dom 会导致奇怪的行为 - 多次调用方法

javascript - 为什么 json_encode 必须出现在 php 文件中而不是出现在外部 javascript 文件中?

c# - 从 cookie 创建和读取列表<>

javascript - 如何限制 <canvas> 上的绘图?

swift - 将cookie插入WKWebView

jquery - 在 chrome 扩展中使用 jquery

google-chrome-extension - 为什么在应用自定义图标后浏览器操作默认图标会重新出现?