3

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

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

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

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

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

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

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

谢谢

4

2 回答 2

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)
  • 失败的字段包含相同的值测试 = 167 (49)
  • 失败的禁止 IP 地址(未实施)= 0 (0)

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

-本

于 2013-09-13T18:54:22.933 回答
1

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

于 2013-09-13T14:03:09.183 回答