gpt4 book ai didi

javascript - 如何创建独立于浏览器的 cookie?

转载 作者:搜寻专家 更新时间:2023-11-01 05:02:16 27 4
gpt4 key购买 nike

  • 我正在尝试建立一个投票系统,用户无需在网站上注册即可投票
  • cookie 依赖于浏览器,因此如果人们使用不同的浏览器,他们可以多次投票(我想阻止他们这样做)(我不想有任何偏见)
  • 我读了evercookie是我可以使用的东西。我看到的问题是调用似乎是异步的。例如

我做了以下事情

 var ec = new evercookie
ec.get("id", function(value) {
alert("Cookie value is " + value);
if (value != null) {
alert('cookie already set, returning');
return;
}
ec.set("id", "12345");
alert('cookie saved');
});

当我使用这段代码时,它首先设置cookie,刷新页面然后返回值,所以我看到的顺序如下

cookie saved
cookie already set, returning

有人可以帮我设置独立于浏览器的 cookie 吗?

谢谢

最佳答案

你不能只用 cookie 来做到这一点。

Cookie 按浏览器(有时甚至按模式按 session )存储,并且在任何情况下都可以由用户随意清除

现在,evercookie试图通过以许多不同的方式存储数据来解决这个问题,希望不会[同时]清除所有数据。 然而,这些采用的方法通常仍然局限于给定的浏览器/配置文件,并且取决于可以采用哪些额外的机制。 (EC 也可以简单地通过禁用 JavaScript、使用调试工具调整 [cookie 或正在运行的] 值或使用非浏览器发起请求来绕过。)

无论如何,当使用 EC 方法时(它可能取得有限的成功,具体取决于人口统计,但它远非“防黑客”),只需设置一个[大]“随机值”,如果没有设置任何值,并且始终将该值发送到服务器。 (实际上没有必要要求服务器提供随机数,因为服务器无法验证原始请求不是“重复的”,这有点像第 22 条军规。)

快乐编码。

关于javascript - 如何创建独立于浏览器的 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8697747/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com