php – 垃圾邮件直接POST到服务器或填写HTML表单吗?

我正在寻找使用Captcha(或Recaptcha)的替代品来登记我正在进行的网站上的注册表格.

我相信Captcha对UX有负面影响.我正在考虑使用隐藏的字段,但显然它们根本没有效果(参考:http://radio.javaranch.com/davo/2008/10/15/1224063498569.html)

对该条的评论指出:

As someone that writes CAPTCHA crackers as part of my job (no,not for
spamming),I can assure you that a hidden field would in no way trip
me up. As another poster mentioned,I check the over the wire traffic,
and don’t pay much attention to what happens to be in the HTML of the
form.

这让我相信spambots会向服务器发出直接的POST请求,而不是请求表单并填写它.

如果是这种情况,如果我创建一个隐藏的只读字段,我预先填充了存储在SESSION中的哈希,该怎么办?当用户提交表单时,我可以比较这些值.这可以作为一种方法来阻止垃圾邮件,或者我是否在监督某些事情?

如果永远不会请求表单,我当然不会在会话中找到任何存储的哈希值,因此可以忽略该请求.

添加另一个带有与服务器端会话变量相关联的挑战的字段是一种很好的方法;它需要在垃圾邮件机器人方面付出相当多的努力,即他们必须加载和解析表单,填写表格并发出另一个请求(发送必要的cookie).

您还可以考虑添加JavaScript来修改给定的质询并以某种方式对其进行修改.然后,攻击者需要在自动复制代码之前找出代码所执行的操作.转换可以是简单的rot13或更复杂的xor操作.像md5,sha1这样的东西是已建立的算法,因此这些选择很差;它必须是定制的.

当然,如果攻击者绑定了您的网站,那么您无法阻止垃圾邮件进入;这是丑陋的事实.例如,他们可以运行Selenium并绕过您精心构建的所有JavaScript保护.

相关文章

Hessian开源的远程通讯,采用二进制 RPC的协议,基于 HTTP 传输。可以实现PHP调用Java,Python,C#等多语...
初识Mongodb的一些总结,在Mac Os X下真实搭建mongodb环境,以及分享个Mongodb管理工具,学习期间一些总结...
边看边操作,这样才能记得牢,实践是检验真理的唯一标准.光看不练假把式,光练不看傻把式,边看边练真把式....
在php中,结果输出一共有两种方式:echo和print,下面将对两种方式做一个比较。 echo与print的区别: (...
在安装好wampServer后,一直没有使用phpMyAdmin,今天用了一下,phpMyAdmin显示错误:The mbstring exte...
变量是用于存储数据的容器,与代数相似,可以给变量赋予某个确定的值(例如:$x=3)或者是赋予其它的变...