如何创建独立于浏览器的 Cookie
How to create browser independent cookies?
- 我正在尝试建立一个投票系统,用户无需在网站上注册即可投票
- 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 按浏览器存储(有时甚至按模式或按会话存储(,在任何情况下,用户都可以随心所欲地清除。
现在,evercookie试图通过以许多不同的方式存储数据来解决这个问题,希望不是所有数据都被[同时]清除。但是,这些员工的方法通常仍然局限于给定的浏览器/配置文件,并且取决于可以使用哪些其他机制。(EC 也可以通过禁用 JavaScript、使用调试工具调整 [cookie 或动态] 值或使用非浏览器发起请求来绕过
。无论如何,当使用EC方法时(它可能有有限的成功,取决于人口统计,但它远非"防黑客"(,如果没有设置任何值,只需设置一个[大]"随机值",并始终将该值发送到服务器。(确实没有必要要求服务器提供随机数,因为服务器无法验证原始请求不是"重复的",这有点像 catch-22。
快乐编码。
你真的不应该使用该库。它会在您的访问者浏览器中放置大量垃圾,非常不稳定(页面对我来说崩溃(。我认为它的存在是为了陈述一个案例,而不是在生产环境中使用。
此外,只需不使用浏览器,而是使用脚本(wget 等(即可轻松解决。攻击者可以在这样的短时间内投票数百次。
您应该将 IP 地址的投票保存在数据库中,并且每天只允许 1 次左右的投票。这是安全性和可用性之间最常见的权衡。
根据您对要完成的任务的描述,cookie将是一个非常非常糟糕的选择。甚至evercookie也不会独立于浏览器。而且,一旦用户清除了他们的cookie,evercookie就毫无用处了。
存储 IP 地址服务器端是最接近获取所需内容的方法。但即便如此,也充满了挑战。许多企业 IT 部门会进行设置,以便来自其网络的所有请求都具有相同的外向 IP。在这种情况下,即使有数千名员工,每个人都有自己的计算机,一旦该网络上的一个人提交投票,同一网络上的任何其他用户都将被阻止这样做。这同样适用于任何拥有ISP的家庭。
最重要的是,您正在寻找的内容与互联网的核心架构背道而驰。
- php httponly cookie在浏览器关闭时被删除
- CORS-服务器端cookie没有保存在chrome浏览器上
- 为什么可以't我在谷歌浏览器中返回cookie
- 如何从浏览器中获取cookie,从另一个应用程序中删除
- 我无法在歌剧和互联网浏览器中设置cookie
- 谷歌cookie是否存在于chrome,火狐,即在phantomjs中发出某些请求时发送的浏览器
- jquery cookie,在清除浏览器历史记录后仍然设置
- 使用javascript删除浏览器的所有Cookie
- 在 Javascript 中增加浏览器 cookie?(setCookie, getCookie method)
- C++ 使用批处理脚本清除所有浏览器 Cookie
- 如何使用AngularJS在浏览器cookie中存储身份验证承载令牌
- 如何获取所有浏览器cookie
- 如何从firefox扩展中删除浏览器cookie
- 寻找搜索浏览器cookie的方法并确定href="邮件收件人:"链接
- IE浏览器cookie中的特殊字符
- Javascript:如何模拟浏览器cookie实现
- 从跨浏览器cookie中获取值
- 可以将对象写入浏览器cookie
- 获取响应未设置浏览器 Cookie
- 浏览器 Cookie 过期处理