为什么“黑客”设置机器人会反复填写网络表单?

EJB*_*EJB 29 spam web-applications

有些东西我不明白,我的一个网络应用程序有一个小表单,允许您输入姓名和电子邮件地址以“订阅”我维护的站点的用户列表。该网站的流量非常低,只对居住在一个非常小的城镇中的极少数人有用......其他任何人都不会感兴趣。

然而,每天,有时一天多次,有人(或机器人)在表单中输入虚构的名称和可能是虚假的电子邮件地址。

这个表单在我的网站上甚至不再活跃,它只是碰巧仍然作为一个孤立页面存在于我的 IIS 目录中(这告诉我有人正在通过谷歌搜索这些类型的表单,因为没有这个表单的路径,如果你是通过默认页面进入的。

这对我来说不是什么大麻烦,我可以用验证码解决问题,但我不明白有人为了什么目的设置一个机器人来重复填写表格?我想一定是有原因的,但对于我的生活,不知道为什么?

我错过了什么?

Eri*_*lje 38

这些机器人试图向您发送垃圾邮件,或者更糟的是,它们试图利用您的联系表格向其他人发送垃圾邮件。

例如,对于mail()联系表单常用的 PHP命令,有几个众所周知的漏洞利用,如果您不小心处理传入的数据,可能会导致您在代码中放置的 TO 地址被 POSTed 数据覆盖从你的表格。

一些防止这种情况的方法:

  1. 使用验证码。对于低流量站点,即使是静态验证码(每次都只有相同文本的图像)也能很好地工作。

  2. 检查 HTTPreferrer以确保 POST 来自您的联系表单。但是,许多机器人会对此进行欺骗,因此它并不是非常有用。

  3. 使用隐藏的表单字段来尝试欺骗机器人。例如,phone_number在您的表单上创建一个字段,并在您的样式表中使用 CSS 将其隐藏(显示:无)。机器人通常会填写该字段(他们通常会填写所有字段以避免可能的必填字段验证错误),但用户不会,因为它是隐藏的。因此,在 POST 时,您会检查该字段中的值,如果其中有值,则 SILENTLY 无法发送消息。我发现单独使用这种方法非常有效。

  • 如果您使用隐藏字段,我建议将其命名为不太常见的名称。我在野外遇到过试图帮助自动填写表单的浏览器工具栏——甚至是隐藏字段! (4认同)

spl*_*tne 10

这些机器人盲目地尝试他们找到的每一种形式来发送垃圾邮件。其中一些可能具有表单的历史数据,即使当前未在搜索引擎上列出,这些机器人也可以将数据发布到该 URL。

假设一个网站包含一个 HTML 表单,用于向朋友发送推荐,通常是“告诉一个油炸的”或“发送贺卡”,例如,它不受 CAPTCHA 图像的保护。机器人可以使用该表单通过您的 SMTP 服务器发送数千封垃圾邮件。

如果机器人来自同一个 IP 地址,您可以在 IIS 或防火墙上阻止该地址。