什么是好的隐形验证码?我的网站需要JavaScript,所以任何需要它的东西都可以.
添加一个新的输入字段,标记为"请留空",使用CSS隐藏它,如果填写该字段则忽略该帖子.如下所示:
...
因此,人类不会看到该字段(除非他们关闭了CSS,在这种情况下他们会看到标签并将其留空)但垃圾邮件机器人会将其填入.任何填充该字段的帖子必须来自垃圾邮件机器人.
这是 Phil Haack的简单数学验证码.它甚至适用于禁用的JavaScript.
用他自己的话说:
它的工作方式是它渲染一些javascript来执行一个非常简单的计算,并使用javascript将答案写入隐藏的文本字段.当用户提交表单时,我们从隐藏的表单字段中获取提交的值,将其与秘密salt值组合,然后将整个事物散列在一起.然后,我们将此值与预期答案的哈希值进行比较,该哈希值存储在base64编码的隐藏表单字段中.如果禁用了javascript,那么我们会将问题呈现为文本旁边的可见文本字段,从而让用户通过非JavaScript浏览器阅读您的网站有机会发表评论.