有一些我没有得到的东西,我的一个网络应用程序有一个小表单,允许您输入您的姓名和电子邮件地址以“订阅”我维护的站点的用户列表。该网站的流量非常低,仅对居住在一个非常小镇的极少数人有用..其他任何人都不会感兴趣。
然而,每天,有时每天多次,有人(或机器人)在表单中输入虚构的名称,并且可能是虚假的电子邮件地址。
此表单甚至不再在我的站点上处于活动状态,它恰好仍然作为我的 IIS 目录中的孤立页面存在(这告诉我有人正在通过 Google 搜索这些类型的表单,因为如果没有此表单的路径您通过默认页面进入。
这对我来说不是什么大麻烦,我可以用验证码解决问题,但我不明白有人会出于什么目的设置一个机器人来重复填写表格?我想这一定是有原因的,但对于我的生活不知道为什么?
我错过了什么?
这些机器人试图向您发送垃圾邮件,或者更糟糕的是,试图利用您的联系表格向他人发送垃圾邮件。
例如,
mail()
联系表单常用的 PHP 命令有几个众所周知的漏洞,如果您不小心处理传入的数据,可能会导致您放入代码中的 TO 地址被 POST 数据覆盖从你的表格。防止这种情况的一些方法:
使用验证码。对于流量较低的网站,即使是静态验证码(每次都包含相同文本的图像)也能很好地工作。
检查 HTTP
referrer
以确保 POST 来自您的联系表单。但是,许多机器人会欺骗这一点,因此它并不是非常有用。使用隐藏的表单域来尝试欺骗机器人。例如,
phone_number
在表单上创建一个名为的字段,并在样式表中使用 CSS 将其隐藏(显示:无)。机器人通常会填写该字段(它们通常会填写所有字段以避免可能的必填字段验证错误),但用户不会,因为它是隐藏的。因此,在 POST 上,您检查该字段中的值,如果其中有值,则静默发送消息失败。我发现仅此方法非常有效。这些机器人盲目地尝试他们发现的每一种形式,以发送垃圾邮件。其中一些可能具有表单的历史数据,即使当前未在搜索引擎上列出,这些机器人也可以将数据发布到该 URL。
假设一个网站包含一个用于向朋友发送推荐的 HTML 表单,通常是“Tell a Fried”或“Send greeting card”,例如,它不受 CAPTCHA 图像的保护。机器人可以使用该表单使用您的 SMTP 服务器发送数千封垃圾邮件。
如果机器人来自同一个 IP 地址,您可以在 IIS 或防火墙上阻止该地址。
如果他们能以某种方式进入您的服务器并在您不注意的情况下在其上植入软件,那么这对他们来说就是一个额外的垃圾邮件机器人。
注册是更接近能够接管服务器的一步,因为您可以看到服务器上的更多文件。
另外,如果表单没有受到 XSS 和其他此类策略的保护,黑客攻击就更容易了。
他们通常在点击提交时尝试伪造自定义 HTML/PHP/ASP 命令,将其用作木马等的后门。
垃圾评论是原因之一。他们试图在博客评论中添加大量链接,例如,试图提高他们的页面排名。
他们中的一些人似乎只是填写了他们看到的带有色情网站链接的任何表格,希望在某个地方,表格中的链接会以某种方式出现在您的网站上并被谷歌拾取。
我很幸运地通过一些自定义 mod_Security 规则阻止了机器人。