【发布时间】:2016-07-11 23:19:15
【问题描述】:
我试图阻止机器人(可能)向我的 php 注册文件提交虚假数据。我正在创建一个使用注册/登录系统的站点,并且我想添加我能够执行的电子邮件验证。但是问题是我的虚拟主机只允许x 每分钟的电子邮件数量,如果机器人发送垃圾邮件,这不仅会填充我的数据库中的垃圾邮件帐户,而且还会因违反电子邮件限制而被暂停。
我一直在阅读有关保护表单的信息,然后出现了 CSRF,这是一个我不熟悉的术语。
这是我目前对CSRF预防的“token法”的理解;
在加载包含表单的页面时创建一个令牌。将令牌存储在
SESSION或 cookie 中。当处理注册的 PHP 文件运行时,它将检查令牌。如果表单中提交的请求不匹配(或者如果令牌未在
SESSION中设置),则请求是垃圾邮件。
我不明白为什么机器人不能简单地从 HTML 表单中获取令牌并提交它。我明白每次都在变,能不能每次都抓着呢?
我假设机器人只会使用 CurL 或类似的东西提交数据,以绕过实际提交 HTML 表单的需要,而是将数据直接发送到 PHP 文件。
我的问题本质上是,这种方法为什么以及如何防止机器人提交我的注册表单(或与此相关的任何表格)。
【问题讨论】:
-
垃圾邮件很常见,有很多不同的方法可以防止和保护我们的网站免受机器人攻击。在您的登录表单中使用限制等。您可以使用 Google 的 reCaptcha,这非常有用。在这里检查它。 google.com/recaptcha/intro/index.html
标签: forms security csrf spam-prevention