【问题标题】:Spam-prevention for my contact form我的联系表的垃圾邮件预防
【发布时间】:2013-09-18 03:51:07
【问题描述】:

我一直在对垃圾邮件预防方法进行大量研究,我不想求助于使用 CAPTCHA。

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

我做的第一件事是删除发送给用户的电子邮件中的表单内容,并简单地收到一条确认消息。

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

我想添加一些其他技术,
检查完成提交的时间 - 如果低于 5 秒,请勿发送电子邮件。
通过唯一 ID - 如果不匹配则不要发送电子邮件

问题是网站页面是缓存的,所以直接设置一个session变量是没有用的。我正在考虑使用 ajax 来访问 CFC 并设置变量,但它需要 JavaScript。

我是否应该将提交限制在启用 JavaScript 的范围内?或者有什么替代建议?

谢谢

【问题讨论】:

标签: javascript coldfusion spam-prevention coldfusion-7


【解决方案1】:

丹尼尔,

自去年以来,我就有一种类似的垃圾邮件检测方法。我可以分享我所看到的。

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

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

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

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

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

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

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

-本

【讨论】:

  • 谢谢,我今天将完成开发,所以我想我会得到 JavaScript ajax 路线。感谢您的意见!
  • 跟进 - 我想我实际上可能只是从缓存中删除页面 - 这样会更容易!如果网站关闭,那么表单无论如何都无法使用。
【解决方案2】:

我建议你看看http://cfformprotect.riaforge.org/,因为它对我很有效。

【讨论】:

    猜你喜欢
    • 2011-01-14
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多