Cookie会阻止投票垃圾邮件吗?

时间:2016-09-02 06:14:46

标签: javascript php cookies

我在PHP中为我的网站制作了一个简单的星级评分功能,我的一般问题是,Cookie会阻止人们多次投票吗?

据我所知,我可以使用javascript和PHP存储cookie。有什么方法可以阻止垃圾邮件发送者测试该功能,查看保存的cookie,然后将其删除/添加到垃圾邮件攻击脚本中?

一个子问题是,我应该在cookie中保存什么?那个人已经投了票?什么防止垃圾邮件发送者在垃圾邮件攻击前自动删除所有Cookie?

到目前为止,我已经获得了蜜罐,按时间计算的密码和其他一些东西以及IP黑名单。

我会尽量避开验证码和重新接收。

5 个答案:

答案 0 :(得分:2)

以下是这样的事实:在最糟糕的情况下,用户可能会得到一台全新的计算机来欺骗您的系统。你无能为力。因此,无论您拥有哪种客户端保护措施,都可能会被破坏。

  • 重置Cookie非常容易。
  • 会话依赖于cookie,因此很容易重置。
  • IP非常容易重置(或使用VPN或其他此类服务),而且,当您走在街上时,移动设备会更改IP。

唯一真正的方法是验证您的用户(即登录系统),并且只允许经过身份验证的用户进行投票。

请注意,如果您不关心偶尔的作弊行为,那么Cookie可能适用于95%的案例。如果必须不惜一切代价防止作弊,您需要一个身份验证系统。

答案 1 :(得分:1)

看起来你在谈论匿名/未经身份验证的用户(访客) - 因为如果它已经登录用户,你可以更容易地在服务器端进行验证(例如,使用Zanderwar对会话的回答)。

我相信你已经知道这条规则,但万一你不知道: 不要在客户端进行安全验证 - 您永远不知道用户正在使用哪种浏览器,移动设备或客户端。在现代客户端上剥离客户端验证,欺骗REST变量,编码/解码,重放事务等非常容易。所以不要在客户端进行安全验证。客户端验证应该仅用于增强用户体验,并且应该仅在服务器端进行适当的安全验证。

对于未经身份验证的匿名用户,我会按IP和时间限制提交。例如,每个IP,他们每小时只能提交一次。您必须在服务器端记录IP和时间并拒绝(或仅更新)过于频繁的提交。

这是我能想到的最简单的解决方案。

答案 2 :(得分:1)

无法使用Cookie或会话阻止垃圾邮件。你花在这个概念上的任何时候都会被完全浪费掉。

这并不意味着会话控制无效,但它本身不能阻止有经验的用户任何

投票站点通常依赖于身份验证系统或客户端的IP和时间戳来限制用户。

答案 3 :(得分:1)

将浏览器字符串与IP一起使用会使其变得更难但是如果他们具有非常相似的设置(就像您在办公室中那样),则可能会阻止同一防火墙(同一IP)背后的多个人投票

除此之外,登录是另一种选择,但可以通过创建多个帐户来规避。

但是,除非您拥有访问者现有的经过验证的身份,否则防止多次投票总是一个问题。

答案 4 :(得分:1)

只要您让客人使用此功能,就不会在不使用Captcha或任何其他反机器人保护的情况下获得全面保护。

您可以做的最接近的是,如果他们在一定时间内投票太多,则会被User-Agent + IP阻止。

另一件事,您可以做的是使用JWT身份验证找到解决方法。它是客户端会话管理的一个很好的工具。

此外,您可以尝试并实施CSRF protection。例如,您可以在加载投票页面时创建唯一令牌,当用户点击其中一个星标时,系统会将此令牌与投票评级一起发送。

但是,再一次,没有针对您的问题的防弹解决方案。