目前我有一个带有CAPTCHA的脚本,提交时会记录用户的IP地址,以防止用户每小时投票超过一次。
然而,很多人使用代理来绕过这个投票限制,我想采用额外的保护措施。
我意识到关于这个主题还有其他问题,但它们总是让那些希望用户只能投票一次的人,而不是时间限制。
感谢您的帮助
编辑:我不想强迫用户登录
答案 0 :(得分:6)
没有100%安全的方法可以避免人们每小时投票超过一次,但这里有一些方法可以让用户更难以规避投票:
答案 1 :(得分:2)
您可以使用Cookie,但人们可以删除它们。最简单的答案,不强迫他们登录(如果他们有多个电子邮件等,他们可以创建多个帐户),如果没有他们能够以某种方式偷偷绕过它,将很难限制它们。
答案 2 :(得分:1)
服务器上具有IP地址的MEMORY表
evercookie
浏览器指纹识别
要求注册
cron job每小时清理一次表
制作禁止域名列表
访问10minutemail并复制电子邮件域并添加到列表中
答案 3 :(得分:0)
您是否反对让用户在您的网站上注册才能投票?我会说它是基于帐户,而不是IP。许多用户可以在NAT后面为他们分配所有相同的外部IP(想想工作或学校)。在这种情况下,我会说一个包含四列的表就足够了:用户ID,轮询ID,投票时间,选择。如果存在相同的用户ID /轮询ID组合且时间大于现在减去一小时,则不允许他们投票
答案 4 :(得分:0)
如果“坏”的人足够聪明,可以使用代理人投票反对你的意愿或规则,那么他们也有可能绕过其他保护......
但以下是你可以做的事情:
1)投票后在机器上设置cookie,但用户可以手动删除cookie
2)执行用户帐户投票,通过电子邮件地址验证,但用户可以创建备用用户帐户
2bis)用户帐户只能在24小时后才能获得投票权,可能不适合您的应用
3)与堆栈溢出一样,在用户帐户上实现信誉机制,这样他们只有在证明他们不仅仅是机器人或替代身份之后才能投票