0

我需要(练习)通过网站 X 中的书签设置 cookie,并使用网站 Y 中的另一个书签来阅读他。

例如,在 Google 中设置一个名为“user”的 cookie,其值为“Guy”,然后从 YouTube 中读取。

我设法设置了 cookie,但不知道如何从网站 b 读取他。

谢谢!

4

3 回答 3

1

您需要两个小书签,一个 getter 和一个 setter。

您访问站点 X 并使用 getter 小书签读取 cookie 并让用户将其复制到剪贴板。

然后你去站点 Y 并使用二传手。setter 将提示用户输入小书签,然后用户将其粘贴到提示中。然后代码将相应地设置 cookie。

您当然可以将这两个小书签组合成一个 getter/setter。提示将包含页面的当前 cookie。然后,用户可以选择复制 cookie 并取消(将其用作 getter)或选择更改 cookie 并单击“确定”(将其用作 setter)。

于 2013-06-11T05:57:28.880 回答
1

我正在寻找一种与朋友共享特定网站 cookie 的方法(通过书签在我的浏览器中阅读它们,而我的朋友也通过书签在他的浏览器上设置它们)。不是你要求的,但搜索把我带到了这里。这是我的方法:

首先有一个用于导出 cookie 的书签。它将删除不必要的空格并将您的数据编码为 base64 字符串以进行安全传输:

javascript:(
function(){
    prompt("GET cookies encoded in base64", btoa(document.cookie.replace(/\s/ig, "")));
    }
)
();

然后是第二个小书签,用于导入字符串中编码的所有 cookie。您还可以在此处设置可选的生命周期(感谢https://www.quirksmode.org/js/cookies.html):

javascript:(
function(){
    var inputstring = prompt("SET cookies decoded from base64");
    var inputclean = atob(inputstring).replace(/\s/ig, "");
    if (confirm("These cookies will be imported:\n\n" + inputclean.replace(/;/ig, "; "))) {
    var days = prompt("Cookie lifetime in full days", "365");
    var cookiearray = inputclean.split(";");
    cookiearray.forEach(function(entry) {
        var expires = "";
        var split = entry.split("=");
        if (days) {
            var date = new Date();
            date.setTime(date.getTime() + (days*24*60*60*1000));
            expires = "; expires=" + date.toUTCString();
        }
        document.cookie = split[0] + "=" + (split[1] || "")  + expires + "; path=/";
    });
    }
    }
)
();

不要忘记您必须在特定网站或选项卡上运行它们。它不会导出浏览器存储的整个 cookie 集合。

于 2018-02-16T03:40:31.587 回答
0

根据这个 StackOverflow,如何使用 php 和 javascript 从不同的域获取 cookie,除非您有权访问它,否则您无法从另一个域获取 cookie,因为这将是一个巨大的安全漏洞。

于 2013-06-10T20:52:48.843 回答