javascript - 我的联系表的垃圾邮件预防

标签 javascript coldfusion spam-prevention coldfusion-7

我一直在研究防止垃圾邮件的方法,我不想求助于使用验证码。

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

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

我已经为人员的“头衔”添加了一行,并使用 CSS 隐藏了该行(如果该字段已填写)。提交完成后没有发送任何电子邮件。

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

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

我应该将提交限制为仅启用 JavaScript 的提交吗?或者有任何替代建议吗?

谢谢

最佳答案

丹尼尔,

我有一个类似的垃圾邮件检测方法,该方法从去年就开始使用了。我可以分享我所看到的。

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

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

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

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

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

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

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

-本

关于javascript - 我的联系表的垃圾邮件预防,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18786639/

相关文章:

algorithm - 朴素贝叶斯和零频问题

javascript - 如果验证失败,有没有办法将 Jquery 拖放可拖动恢复到其原始位置?

具有混合值类型的 JavaScript 数组排序 - 寻找合适的比较函数

javascript - 如何测试div是否被阻止

javascript - 使用书签更改网址

javascript - HTML/JS/Coldfusion - 可以在 location.href 上进行多选吗?

coldfusion - 无法使用安全 ftp 将文件放入 ram

条件逻辑中的 Coldfusion 函数

php - 如何防止id被修改?

php - 防止滥用邀请系统