1

我正在创建如下所示的 cookie。我知道网站 A 无法从网站 B 读取 cookie,但我想知道插件是否可以这样做?我有一个浏览器扩展程序/插件,它具有简约的界面并提供登录功能,但它有一个转到仪表板链接,我不想让用户再次登录。然后他们将不得不再次注销。如果这是不可能的,我还有什么其他选择

function create_cookie(name, value, days) {
    var expires;

    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = "; expires=" + date.toGMTString();
    } else {
        expires = "";
    }
    document.cookie = encodeURIComponent(name) + "=" + encodeURIComponent(value) + expires + "; path=/";
}
4

1 回答 1

1

通常是的,取决于浏览器。无论如何,您必须始终以特定于浏览器的某些方式向用户请求权限。

例如,作为您的标签,Chrome 扩展程序允许通过chrome.cookies(开发者 Chrome)访问给定来源集的 cookie。您必须在扩展的清单中请求对 cookie 和相对来源的访问,以便实际设置这些属性并使其可用于某些站点。如果您不询问权限,则 chrome 会保留该属性undefined

通过chrome.cookiesJS 事件系统,您可以免费访问设置、读取和写入的 cookie,还可以在 cookie 更改时获得扩展内通知。

请注意,对于 chrome 策略,当用户安装扩展程序时,将通知您当前请求 cookie 的站点,以及您在清单中请求的所有权限。

这也是一种很好的行为,我认为通常还有取决于您所在国家/地区的法律义务,告知您的用户您实际上在某些站点中存储/使用他们的 cookie,以及您将如何处理它们。

如果您打算将 cookie 仅用于存储信息,而不是用于某种站点 cookie 操作,通常浏览器(如 chrome)会公开它们的 cookie localStorage/sessionStorage,或者也基于文件系统的特定扩展存储(如chrome.storage(Developer Chrome)),即允许您在用户会话之间存储信息。这种存储是可取的,因为对用户隐私的侵犯较小。

如果你想挖掘一些代码,你可以在这里找到一个 chrome 实现的例子:Chrome Extensions Samples - Api/Cookies (GitHub)

于 2021-02-10T01:25:49.297 回答