首页 > 解决方案 > 是否可以通过 Laravel 中的 ->ip() 限制访问者的提交形式

问题描述

通过获取客户端 IP 并将其保存在数据库中,然后使用它来检测垃圾邮件访问者,阻止或限制访问者(仅查看网站,无需用户注册)在 Laravel 中的多个表单提交。那可能吗?

标签: laravelspam-prevention

解决方案


我不建议使用访问者 IP 来防止将来通过表单向您的网站发出请求。对于普通用户来说,IP 很少是静态的。如果用户知道他们在做什么,他们只需要重新启动他们的互联网连接,他们的 ISP 就会给他们一个不同的 IP 地址。此外,他们可以使用 IP 轮换代理他们的请求来绕过您的“安全性”。

如果您试图阻止机器人提交表单。一个好的方法是实现一个没有值的隐藏输入字段。如果提交了表单并且已经填充了输入字段,那么您就知道它是一个机器人。这不是最可靠的方法,因为机器人必须是一个愚蠢的机器人。

我能想到的唯一真正“可靠”的方法是客户端 > 服务器端验证,例如 Google ReCaptcha。

当然,替代方法只是接受您的表单将被垃圾邮件发送并在提交后找到处理垃圾邮件的方法。


推荐阅读