Def*_*ake 2 javascript cookies httponly google-chrome-extension 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);
Run Code Online (Sandbox Code Playgroud)
我执行的步骤:
也许有人知道我做错了什么?
编辑:
看来原因是我的cookie有参数HttpOnly=true和SameSite=Lax(相关链接)。我可以在服务器日志中看到另一个 cookie。但是由于这个线程,如果credentials参数设置为include,则所有 cookie 都将被发送,即使是 httpOnly cookie。由于这个答案,我也尝试将它发送到 127.0.0.1 而不是 localhost具有相同的结果,。
我不能设置httpOnly为假。这是由框架强制的。有人知道怎么修吗?
编辑2:
我终于安装了 Cookie 编辑器,发现SameSite=Lax是这个原因。如果我将它设置为No Restriction那么我会在服务器端看到它。不幸的是,我使用的框架只允许Lax和Strict选项(Chrome 扩展程序同时失败)。有谁知道如何从 Chrome 扩展程序发送 Lax cookie?
这是版本 77 之前 Chromium 中扩展的问题。当跨站点 cookie 设置为SameSite=Lax或 时SameSite=Strict,cookie 不会与跨站点请求一起发送。
这已在所有平台的 78 版中修复。现在 chrome 扩展程序会在SameSite=Lax或时发送 cookie SameSite=Strict。
参考:
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
| 归档时间: |
|
| 查看次数: |
1988 次 |
| 最近记录: |