我的联系表单的垃圾邮件防护

时间:2013-09-13 12:43:30

标签: javascript coldfusion spam-prevention coldfusion-7

我一直在做很多关于垃圾邮件防范方法的研究,我不想使用CAPTCHA。

表单通常会向用户和网站管理员发送包含表单内容的电子邮件。

我做的第一件事就是删除发送给用户的电子邮件中的表单内容,只需要一条确认消息。

我已为人员标题添加了一行,并使用CSS隐藏了该行,如果该字段已填写。提交完成后不会发送任何电子邮件。

我想补充一些其他技巧,
检查完成提交的时间 - 如果不到5秒,请不要发送电子邮件 通过唯一身份证 - 如果没有匹配则不发送电子邮件

问题是网页被缓存,因此直接设置会话变量是没用的。我正在考虑使用ajax来命中CFC并设置变量,但它需要JavaScript。

我是否应该仅将提交内容限制为启用了JavaScript的人?或者有其他建议吗?

由于

2 个答案:

答案 0 :(得分:3)

丹尼尔,

自去年以来,我采用了类似的垃圾邮件检测方法。我可以分享我所看到的。

基于会话的测试: 检查某人填写表单并检查用户是否来自正确页面的时间是非常可靠的检查,尽管有些困难。在您的情况下,强制用户使用现代的,支持JavaScript的浏览器可能是您的最佳选择。看起来它似乎已成为一种更为公认的做法,我想,对吧?我真的不知道......

基于内容的测试: 另外两个相当有用的做法是检查表单字段是否包含不同的值,并且输入的URL不超过指定数量。垃圾邮件发送者似乎总是将相同的垃圾URL粘贴到每个字段中。但是,这些检查几乎与基于会话的检查一样好。

除了以上内容之外,我们的垃圾邮件检测启发式还有一些其他检查:

  • 基本正则表达式注入测试 - 简单,但如果您有兴趣我可以分享
  • 垃圾邮件内容 - 相当无用 - 一个主要由手工构建的简单库
  • 禁止的IP地址 - 也很无用..

过去一年左右我们启发式的一些数字。 总失败测试= 83,356

  • 注射失败测试= 54(0测试失败,没有其他测试)
  • 输入测试中的URL太多失败= 18,935(2396)
  • 垃圾邮件内容测试失败= 3673(46)
  • 隐藏字段篡改测试失败= 60,295(1479)
  • 失败的时间错误测试= 64,430(17,126)
  • 无效的会话测试失败= 28,706(140)
  • 失败的字段包含相同的值Test = 167(49)
  • 禁止的IP地址失败(未实施)= 0(0)

我不想发布太多有关我们标准的详细信息,但如果您有兴趣,我们很乐意分享代码。

-Ben

答案 1 :(得分:1)

我建议你看看http://cfformprotect.riaforge.org/,因为它适用于我。