Har*_*rry 4 forms security spam-prevention csrf
我试图阻止机器人(可能)将虚假数据提交到我的php注册文件.我正在创建一个使用注册/登录系统的网站,我想添加我能够的电子邮件验证.然而问题是我的webhost只允许x每分钟发送大量电子邮件,如果机器人发送垃圾邮件,这不仅会使我的数据库充满垃圾邮件帐户,而且我也会因违反电子邮件限制而被暂停.
我一直在阅读有关确保表格和CSRF的内容,这是我不熟悉的术语.
这是我目前对CSRF预防的"令牌方法"的理解;
加载包含表单的页面时,创建一个令牌.将令牌存储在SESSIONcookie或cookie中.
当运行处理注册的PHP文件时,它将检查令牌.如果表单中提交的内容不匹配(或者未设置令牌SESSION),则请求是垃圾邮件.
我不明白为什么机器人不能简单地从HTML表单中获取令牌并提交它.我知道它每次都在变化,难道不是每次都抓住它吗?
我假设机器人只是使用CurL或类似的东西提交数据,以绕过实际提交HTML表单的需要,而是直接将数据发送到PHP文件.
我的问题基本上是,为什么以及如何防止机器人提交我的注册表格(或任何表格).
bob*_*nce 10
使用CSRF表单令牌是否有助于防止垃圾邮件?
有点,是的.不是设计,而是因为它使编写机器人的工作量略高,而机器人编写者则很懒惰.
我不明白为什么机器人不能简单地从HTML表单中获取令牌并提交它
当然,专门针对您的注册表单编写的机器人将会这样做.而作为无头网络浏览器实现的机器人将自动执行它,因为这是真正的浏览器所能做的.
你将通过拥有一个CSRF令牌停止的僵尸程序是愚蠢的机器人,那些只是将垃圾扔进他们的刮刀找到,提交和逃跑的每个表单操作URL,甚至没有看到响应是什么.评论垃圾邮件发送者往往是愚蠢的.
我的问题本质上是,这种方法为什么以及如何防止机器人提交我的注册表(或任何与此相关的表格)。
它没有。
CSRF 代表“跨站点请求伪造”,此类令牌有助于防止这种情况发生 - 用户被诱骗从另一个站点向您的站点提交表单,这与垃圾邮件无关。
为了防止垃圾邮件,您应该使用某种验证码挑战。