在没有用户的网站中,cookie是阻止人们重复操作的唯一方法吗?

时间:2009-04-16 08:43:40

标签: cookies web

我正在创建一个网站,我不想拥有用户/会员资格。

但是,使用该网站的人可以执行投票和标记可疑内容等操作。是识别和阻止用户使用cookie重复执行此操作的唯一方法吗?

我意识到用户可以清除他们的cookie,但我想不出另一种方式。

对此方案的建议?

8 个答案:

答案 0 :(得分:4)

您可以在数据库的datarecord中映射cookie + ip-adress。识别用户。因此,如果数据库中存在ip,您只需添加cookie,但首先检查cookie以避免unessesary数据库调用。

这不是最佳选择,因为学校等可能在许多计算机上拥有相同的ips。

你总是可以适应openid!

答案 1 :(得分:1)

Marko&面貌是正确的,

只是添加,你可能想要存储每个投票的时间戳,IP等...所以至少如果有人试图“游戏”你的网站,你就可以回滚所做的投票来自同一地点或在很短的时间内(即从机器人)

答案 2 :(得分:1)

+1对其他人已经说过的话。这是另一个中间思路:

使用Cookie作为限制投票的主要方式。如果找不到cookie,请检查IP地址。例如,允许每隔5分钟从同一IP获得1票。

答案 3 :(得分:0)

是的,你是对的。

HTTP是无状态的,因此无法确定您现在收到的请求的来源是否与您收到的请求的来源相同或不同,例如,5分钟前。

Cookie是解决这个问题的唯一方法。甚至服务器端会话都依赖于cookie来维护跨请求的会话身份(忽略了在URL中传递sesison ID的安全噩梦,任何有恶意的人都可以轻易回避)。

答案 4 :(得分:0)

Cookies是不够的,因为你说它可以被清除/过期。

由于DHCP和防火墙,IP地址跟踪也不是一种选择。

唯一可以100%肯定的是用户,但是再一次,一个人可以注册多个帐户。

我会选择饼干,这是最简单,最不突兀的方式。如果有人真的想要玩这个系统,他会找到一种方法来阻止它。

答案 5 :(得分:0)

即使有会员资格,用户也可以多次注册并投票。

Cookie是处理此问题的一种方法,但知道可以删除Cookie的人可以再次投票。

您可以捕获选民的IP并基于此进行限制。但是很多人都拥有相同的IP。

可悲的是,别无他法。

答案 6 :(得分:0)

如果适合他们,总会有人游戏系统。此外,如果您完全不需要cookie,那么您可以接受非常简单的攻击。<​​/ p>

我认为您会考虑如何提高在怀疑之下运营的用户的经济成本。

例如,如果具有相同cookie的用户尝试重新提交投票,那么显然可以轻松停止投票。

如果具有不同cookie但来自同一IP的用户做同样的事情,它可能来自代理/防火墙,因此您可能需要谨慎并强迫他们做一些额外的事情,比如简单的CAPTCHA。一旦他们完成了这项工作,如果他们行为正常,只要他们的新cookie与他们保持一致,就不需要新的东西。

这意味着没有cookie的人仍然可以参与,但他们必须每次重新输入字母序列或其他任何内容。麻烦,但他们可能习惯于没有cookie的网站。如果需要,他们可以例外。

您真的无法处理坐在IP池(真实或其他)上的用户以及在您的网站上利用新的动态攻击媒介。在这种情况下,他们的经济投资将超过你的,坦白说,你会失败。那时,您只是在竞争维护系统规则。那时你应该探索需要注册/电子邮件/手机/短信确认来提高赌注。

答案 7 :(得分:0)

您可以添加GET变量和网址部分作为Cookie - 有些网站会这样做,以便在禁用Cookie时允许登录和/或跟踪。例如,使用源IP和用户代理字符串生成部件。

site.com/vote?cookie=123456

site.com/vote/cookie123456