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