在Chrome扩展程序中将SameSite = none设置为安全

时间:2019-10-17 21:46:32

标签: javascript cookies google-chrome-extension manifest.json samesite

chrome最新的77.0更新之后,我开始在chrome扩展程序的背景页面上收到此警告。

  

设置了与http://www.google.com/处的跨站点资源关联的cookie,但未设置SameSite属性。如果将来的Chrome浏览器版本设置为SameSite=NoneSecure,则仅会发送带有跨站点请求的cookie。您可以在Application> Storage> Cookies下的开发人员工具中查看Cookie,并在https://www.chromestatus.com/feature/5088147346030592https://www.chromestatus.com/feature/5633521622188032上查看更多详细信息。

通过设置,我能够将扩展程序恢复为之前的工作状态 SameSite默认将cookie设置为“启用”。在chrome:// flags

禁用此临时客户端修补程序后,将执行此代码,

console.log(rtLink) 

rtLink以未定义的形式返回,启用了客户端修复后,它将正确执行并显示从Google搜索中找到的网址

//console.log("Background.js is running");

chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse) {
        fetch(request)
            .then(function(response) {

            return response.text()
            })
            .then(function(html) {
                var parser = new DOMParser();
                var doc = parser.parseFromString(html, "text/html");

                // Finds and sets the first search term URL to rtLink
                var rtLink = doc.getElementsByClassName("r")[0].children[0].href;
                console.log(rtLink);

我的问题是,如何在我的获取请求/响应上设置SameSite = Lax(或None)并确保安全,或者我问的是错误的问题。如果是这种情况,为了适应此Cookie更改,我必须具体更改为什么?

1 个答案:

答案 0 :(得分:1)

对于任何这些警告,如果您不负责域,则不负责更新cookie。在这种情况下,Google负责更新相关代码,该代码为SameSite中的cookie设置了google.com属性。

这时,警告仅是参考信息,不影响功能。直到M80(目前定位于2020年2月)之前,才计划在稳定的Chrome中实施此行为。

如果您希望通过fetch请求发送Cookie,则应确保自己explicitly including them

chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse) {
        fetch(request, { credentials: 'include' })
            .then(function(response) { // snip