2012-01-05 20 views
3

全部, 我有我的网站上的留言板功能,我不断收到垃圾邮件。我使用jquery验证器在前端进行验证,并询问数学问题以确保它不是垃圾邮件工具。我还有一个隐藏字段,它在我的POST请求中生成一个随机数(一个Form Key)。防止垃圾邮件发布网站上的登录表格不安全

在后端我验证表单键,我也检查一些选择字功能的值,我也说ifset($ _ POST)。我仍然不断收到垃圾邮件非常糟糕,不知道我怎么能避免这一点。其他则让人们注册该网站,我怎样才能防止所有的垃圾邮件?任何额外的建议,非常感谢!

回答

5
  1. 使用更好的验证码,比如Google的Re-Captcha。
  2. 创建一个你用CSS隐藏的蜜罐。机器人通常填写所有领域,所以如果这个隐藏的领域被填充,你知道它是一个机器人。
+0

哦,我也喜欢蜜罐的想法。会从来没有想过这个。 – James 2012-01-05 23:28:54

+1

蜂蜜罐+1。 – 2012-01-05 23:34:14

+0

@dqhendricks就像一个额外的FYI,我仍然得到垃圾邮件,所以我决定实际上把CSS放在jQuery中,并以这种方式隐藏表单字段。我会回报,看看这是否更成功。 – user1048676 2012-01-06 14:09:46

2

我没有在实践中对它进行测试,但您可以做的一件事就是利用机器人非常快地发布表单的事实。当你渲染页面时,你可以有一个隐藏的字段并添加一个时间戳。在帖子发布之后,在服务器端,检查时间戳,如果它少于5秒,那么它不太可能是人的帖子。

+0

谢谢,我会将它添加到我的检查清单中。 – user1048676 2012-01-05 23:26:32

0

把recaptcha放在上面。 http://www.google.com/recaptcha

+0

用户已经在使用数学CAPTCHA,所以我不知道为什么recaptcha会更好。 – j08691 2012-01-05 23:25:54

+0

谢谢,但为什么recaptcha更好,然后问一个数学问题?机器人可以读取隐藏字段并将该值输入到表单字段中吗?我正在考虑一个数学问题和一个recaptcha都表明它是一个输入表单的人。 – user1048676 2012-01-05 23:25:57

+0

因为机器人可以阅读文本。另外,如果他将最终的数学值存储在隐藏字段中并将其提交到表单中,则机器人只需为该隐藏字段名称刮取页面并从中提取值。所以机器人会知道该如何回答。 – James 2012-01-05 23:27:20

1

我解决了这个问题,某些形式的我只有走近它不同,增加了表格字段是空的提交。我发现大多数机器人都假定他们需要填写所有文本字段才能提交表单。我所做的是添加一个真正的用户不应该看到的表单字段,并确保它们在$ _POST中保持为空。

http://aknosis.com/2009/04/17/zero-user-interaction-captcha/