实用的基于非图像的验证码方法?

实用的基于非图像的验证码方法?

看来我们会增加卡普查支持堆栈溢出。这对于防止机器人、垃圾邮件发送者和其他恶意脚本活动是必要的。我们只想让人类在这里发布或编辑东西!

我们将使用JavaScript(JQuery)CAPTCHA作为第一道防线:

http:/docs.jquery.com/tutorials:Safer_Contact_Forms_Win_CAPTCHAs

这种方法的优点是,对大多数人来说,验证码是看不见的!

然而,对于禁用JavaScript的人,我们仍然需要一个退路,这是它变得棘手的地方。

我写了一个ASP.NET的传统CAPTCHA控件我们可以重复使用。

但是,我更愿意使用一些文本,以避免在服务器上使用每个请求创建所有这些映像的开销。

我见过.。

  • ASCII文本Captcha:

    \/\/(_)\/\/

  • 数学难题:什么是7减3乘2?
  • 琐碎的问题:什么味道更好,蟾蜍还是冰棒?

也许我只是在向风车倾斜,但我想要一个资源密集的,非形象的。<noscript>如果可能的话兼容验证码。

想法?


扬帆大鱼
浏览 562回答 3
3回答

四季花海

我开发的一种方法这似乎是完美的(尽管我可能没有你收到的评论垃圾邮件那么多),那就是有一个隐藏的字段,并用一个假的值填充它,例如:<input&nbsp;type="hidden"&nbsp;name="antispam"&nbsp;value="lalalala"&nbsp;/>然后,我有一段JavaScript,它每秒钟用页面加载的秒数更新该值:var&nbsp;antiSpam&nbsp;=&nbsp;function()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(document.getElementById("antiSpam"))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;=&nbsp;document.getElementById("antiSpam"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(isNaN(a.value)&nbsp;==&nbsp;true)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.value&nbsp;=&nbsp;0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.value&nbsp;=&nbsp;parseInt(a.value)&nbsp;+&nbsp;1; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setTimeout("antiSpam()",&nbsp;1000);}antiSpam();然后,当表单提交时,如果反垃圾邮件的值仍然是“lalalala”,那么我将其标记为垃圾邮件。如果反垃圾邮件值是整数,我将检查它是否高于10(秒)。如果它低于10,我标记它为垃圾邮件,如果它是10或更多,我让它通过。If&nbsp;AntiSpam&nbsp;=&nbsp;A&nbsp;Integer &nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;AntiSpam&nbsp;>=&nbsp;10 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Comment&nbsp;=&nbsp;Approved &nbsp;&nbsp;&nbsp;&nbsp;Else &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Comment&nbsp;=&nbsp;SpamElse &nbsp;&nbsp;&nbsp;&nbsp;Comment&nbsp;=&nbsp;Spam其理论是:垃圾邮件机器人将不支持JavaScript并提交它所看到的如果bot支持JavaScript,它将立即提交表单在发帖之前,评论者至少已经阅读了部分页面。这种方法的缺点是它需要JavaScript,如果您没有启用JavaScript,您的评论将被标记为垃圾邮件,但是,我确实会检查标记为垃圾邮件的注释,所以这不是问题

温温酱

我的最受欢迎的验证码:
打开App,查看更多内容
随时随地看视频慕课网APP