【问题标题】:How to implement two recaptcha in the same page如何在同一页面中实现两个recaptcha
【发布时间】:2011-03-28 18:43:15
【问题描述】:

我们如何在同一页面上实现两个 recaptcha 用户控件。

问题:

我们有两种视图,一种用于通过发送电子邮件向朋友介绍该网站,另一种用于编写任何注释。告诉朋友部分是隐藏的,它通过 ajax 发送电子邮件,注释作者部分是可见的,所以当我们需要两者但以不同的方式时,它会产生问题。

【问题讨论】:

标签: recaptcha


【解决方案1】:

重构以避免可用性问题

这似乎不合理,我建议不惜一切代价避免这种情况,因为如果您确实需要其中两个,则会遇到严重的可用性问题。为什么你还需要两个验证码?验证码背后的主要思想是确保有人在表单中输入数据,而不是计算机。

因此,如果页面上有一个验证码,您就放心了。因此,如果第一个是由一个人填写的,那么所有其他数据也是如此,您不需要第二个。

但我可以看到一种情况,其中两个验证码可能会到位。这就是页面上有两个<form> 元素的时候。因此,用户可以提交一个或另一个。在这种情况下,用户将始终只从一个表单提交数据,而不是同时提交。因此,您也可以通过以下方式避免这种情况:

  • 将这两个表单分成两个页面/视图,并带有一个额外的前置条件页面,用户可以在其中选择两个表单之一
  • 一开始隐藏验证码,但当用户开始将数据输入其中一个表单时,您可以将隐藏的带有验证码的 DIV 移动到表单内并显示它。这样一来,页面上只会有一个验证码,并且会出现在用户即将发送的表单上

第二个是您要避免的。如果您向我们提供更多详细信息,您的业务问题是什么,我们可以为您提供更好的答案。

替代方案

既然您描述了您的实际业务问题,我建议您看看 honey pot 技巧,该技巧更常用于此类场景。因为如果你在你的网站上使用了太多的验证码,人们会很生气。他们是乏味的工作,这是肯定的。蜜罐技巧可以帮助您避免这些不必要的数据输入。

当然,另一个问题是:您的用户在进行这些操作时是否已登录?尤其是编辑部。如果是,您可以更好地缓解此问题。您可以为每个用户设置发送消息的时间限制。就像每分钟几个。这就是一个人会做的事情。当然,存储有关发送这些电子邮件的信息,因此您仍然可以历史跟踪用户所做的事情,以便您可以禁用被滥用的帐户。但是当用户登录时,他们通常不必输入验证码,因为他们已经在身份验证阶段识别了自己。

最终的问题当然是:为什么机器人会向朋友发送电子邮件?他们将无法发送任何类型的垃圾邮件吗?那有什么意义呢?如果机器人可以向用户发送垃圾邮件,它们更有可能滥用您的系统。通过发送带有内容的电子邮件或在您的网站上留下垃圾邮件。这些表单需要机器人检查。

【讨论】:

  • 谢谢罗伯特,第二个避免点非常有用。我想不出为什么我没有想到这个。好主意。主要问题是我们有两种视图,一种用于通过发送电子邮件向朋友介绍该站点,另一种用于编写任何注释。告诉朋友部分是隐藏的,它通过 ajax 发送电子邮件,注释作者部分是可见的,所以当我们需要两者但以不同的方式时,它会产生问题。有没有其他可以帮助的方法?
  • 为什么机器人会向朋友发送电子邮件?如果一个自动化程序会尝试发送邮件,这会降低邮件服务器的速度。不会发生吗?
  • @Dev:但这是一个愚蠢的解决方案。它不会给创作者带来任何收入。它只是为了破坏邮件服务器的工作。但。这种情况发生的概率可能非常小。当它真正发生时,我会处理它 - 可能无论如何我都不必处理它。
猜你喜欢
  • 2023-04-11
  • 2018-04-09
  • 2014-02-20
  • 1970-01-01
  • 2017-03-14
  • 1970-01-01
  • 1970-01-01
  • 2010-11-05
  • 2019-12-07
相关资源
最近更新 更多