有哪些技术可以防止多次提交竞赛?

Dan*_*ows 5 php validation captcha codeigniter

该项目

我们有一个用PHP编码的竞争,CodeIgniter.该表单已对电子邮件地址和手机号码进行验证.页面本身托管在不同域的iframe内(它是代理 - 客户关系).

问题

我们为用户提供了1000个条目.我们知道它们是假的,因为:

  1. 他们使用相同的手机号码 - 假设他们找出了通过验证的手机号码,然后每次都使用它.
  2. 电子邮件地址都在奇怪的域上,其中一些域重复多次.

但是,IP地址是唯一的,条目分布几天,域本身有MX记录,用户代理看起来很正常.

客户端不希望做任何可能导致更少条目的事情.

问题

Captcha等方法的优点和缺点是什么?您使用了哪些UI和代码模式?

我读到的一种方法是允许可疑的条目,以便接受垃圾邮件发送者条目,但是它们的数据有一个"可疑"标记,然后手动检查.我可以查看哪些数据以查看是否可疑?

Wes*_*rch 1

验证码的缺点:

\n\n
    \n
  1. 用户讨厌它,如果实施不当(例如,失败的验证码会重置其他表单字段),它可能会令人沮丧。
  2. \n
  3. 当字母难以阅读时,合法用户可能很难完成。
  4. \n
  5. 并不总是有效。例如,几个月前有人刚刚通过击败 ReCAPTCHA 来欺骗 Ticketmaster* 。
  6. \n
  7. 丑陋的、需要实现的代码更多,并且它将负担或责任从您身上转移到了用户身上。“证明你是人类”不是我在发送表格时希望看到的,非常侮辱。
  8. \n
\n\n

@Nick 的想法是正确的,使用文本/电子邮件验证。IP 检查有时可以,但正如您所说,您使用相同的手机号码获得唯一的 IP,因此它不可靠。

\n\n

这里有很多关于验证码替代方案的精彩帖子,如果您打算使用它,绝对值得一读。您可能必须在让用户轻松(鼓励提交)和前端安全技术之间找到平衡。

\n\n

但为什么不能简单地忽略重复的手机号码或手机号码 + IP 组合呢?仅仅因为他们可以多次提交并不意味着您必须接受它。如果是人,让他们认为他们正在发送多张选票:)

\n\n
\n

* Ticketmaster 使用各种手段试图阻止 Wiseguy\xe2\x80\x99s 操作,\n 一度切换到名为 reCaptcha 的服务,\n Facebook 也在使用该服务。它\xe2\x80\x99 是一个第三方\n 验证码,可向网站\xe2\x80\x99s 访问者\n 提供验证码挑战。当客户尝试购买门票时,Ticketmaster\xe2\x80\x99s 网络会向 reCaptcha 发送一个唯一的\n 代码,\n 然后 reCaptcha 将验证码质询传输给\n 客户。

\n\n

但据称被告也能够阻止这一点。检察官坚称,他们\n 编写了一个脚本,\n 冒充用户尝试访问 Facebook,并\n 从 reCaptcha 中下载了数十万\n 可能的验证码挑战。\n 他们识别了每个\n 验证码挑战的文件 ID并创建了验证码 \xe2\x80\x9canswers\xe2\x80\x9d\n 数据库来对应每个 ID。然后,机器人会识别 Ticketmaster 上挑战的文件 ID,并反馈相应的答案。当局称,该机器人还模仿人类行为,偶尔会在输入答案时犯错误。

\n
\n