防止访客再次投票

时间:2012-07-06 18:13:02

标签: ruby-on-rails session authentication tracking rack

原始问题

我想在我的页面上实现一个对访问者和用户开放的投票系统,即未经过身份验证的用户可以投票。

是否有用于识别访客的导轨/机架(或其他)解决方案?

概要/结果:

如果您想实现一个访问者只能采取一次特定行动的系统,即投票系统。您必须将访问者划分为两组:

不想/不具备投票技巧的访客

可以使用以下技术跟踪不操纵结果的访问者:evercookie,Web浏览器指纹识别(panopticklick)和IP阻止。

宝石:

JS:

实服务:

想要并且可以欺骗投票的访客

想要操纵结果的访问者将会这样做。这是一个example。您可以为这些访问者设置较高的障碍,但它们通常更容易绕过这些障碍而不是实现它们。这个问题的答案完美地概括了这个原因。

2 个答案:

答案 0 :(得分:3)

您可以使用Cookie,但可以禁用和过期,或使用IP地址来识别访问者。这也可以被欺骗,并且有可能从较大的网络中,人们使用相同的IP(例如来自公司网络)。

基本上没有万无一失的解决方案。我认为IP地址可以“足够好”,如果没有什么重要的话取决于它。

答案 1 :(得分:3)

客户端软件识别

Web浏览器指纹识别

panopticklick只识别浏览器配置,而不是人类。只需在同一台计算机上使用不同的浏览器(IE / FF / Opera / Chrome),在同一台计算机上使用相同的浏览器(不同的已安装插件集,不同的浏览器指纹)或使用不同的浏览器指纹电脑将“愚弄”panopticklick。

这不是panopticklick的弱点,因为panopticklick不会尝试识别人类,只会识别Web浏览器。

“隐私浏览模式”应该使浏览器指纹不那么独特。

缓存

evercookie,就像任何类型的Cookie一样,特定于用户帐户(或计算机):只是使用不同的帐户或不同的计算机会给你一个不同的身份。 (由于文件权限,不同的用户无法访问彼此的cookie。)

“隐私浏览模式”,如果实施得当,将清除所有cookie,包括“超级cookie”。

IP地址

更改IP地址

有些订阅者有:

  • 固定的IP地址;
  • 很少更改的IP地址;
  • 一个IP地址,如果他们拔掉调制解调器一小时,几天或几周就会更改;
  • 几乎每次重启调制解调器时都会更改的IP地址;
  • 一个IP地址,每24小时更改一次,即使他们不想这样做(因为IP地址更改会破坏TCP连接)。

这不是弥补的。 我知道ISP具有所有这些不同的IP分配策略。但是,我没有关于这些不同类别中的用户数量的统计信息。

有些ISP会让您支付固定的IP地址。所以我认为,对于大多数互联网用户来说,不断变化的IP地址几乎是一种常态。

代理

使用匿名代理(包括Tor)将提供不同的IP地址,就像VPN一样。

但所有代理用户(或Tor出口节点的所有用户)可能都拥有相同的IP地址。

共享IP地址

几乎在所有情况下,家庭成员都会共享一个IP地址。

大多数中小型企业只有一个外部地址。实际上,这是针对网络邮件的每IP反垃圾邮件限制的一个问题。

几乎所有移动IP用户与少数或许多其他用户共享相同的IP地址。这实际上是每IP反DOS限制的问题!服务器管理员必须列出传出的IP地址并将其列入白名单!每当移动ISP使用新的传出IP地址时,其客户端将再次被阻止,直到服务器管理员添加新的IP地址。

你可能不想玩这个“游戏”。

相关问题