对抗表单垃圾邮件的 5 种方法

发布于 作者:

5 Ways of Battling Form Spam image

创建应用程序后,迟早会遇到垃圾邮件机器人攻击。这是不可避免的。

在我的一款项目中,注册表单遭到攻击,最终导致了 17,000 多个假用户,清理起来非常麻烦。作为处理流程的一部分,我在 Twitter 上询问其他人是如何在没有验证码的情况下对抗机器人和防止表单垃圾邮件的,收到了很多回复,其中包含许多很棒的想法。我想分享所有提到的方法,这样如果您遇到攻击,就知道如何反击。

  1. Cloudflare

如果您使用的是 Cloudflare 之类的服务,可以利用它们的“页面规则”设置来锁定带有表单提交的 URL。

我不认为这和其他的方法一样有效,但如果您已经使用该服务,它可以快速实现,而且不会造成任何伤害。

  1. 蜜罐

蜜罐是第一道防线,设置起来非常容易。它们在这种情况下的工作方式是添加一个隐藏的表单输入,该输入永远不应该有值,然后在提交表单时,如果该隐藏字段有值,则表明它很可能是来自机器人。

您可以自己实现,但也有像 蜜罐这样的软件包,可以轻松集成。

只需记住,如果您自己创建输入字段,请使用看起来合法的名称,这样机器人会认为这是应该填写的内容。

  1. 验证电子邮件

如果您的表单需要电子邮件,例如用于新用户注册,那么您可以验证电子邮件是否真实存在,并确认他们是否点击了电子邮件中的按钮以确认注册。很多新闻通讯(包括我们每周的 Laravel 新闻通讯)都是使用此方法工作的。

您输入您的电子邮件。我们使用的服务会向您发送一封电子邮件。您点击确认。然后您就成为了订阅者。

这有助于确保他们确实想要注册,而不是机器人或某个人的恶意注册。

另一种类似的方法是使用像 identibyte这样的服务,它会通过其 API 验证电子邮件。这可以避免让用户进行额外的步骤。

  1. 验证码

这是我最不喜欢的方法,因为我真的很讨厌验证码。谷歌有 不可见 reCAPTCHA,这可能是最好的验证码选项。

  1. 专用垃圾邮件服务

两个主要的垃圾邮件服务是 WordPress 的 AkismetStop Forum Spam。Akismet 是付费服务,Stop Forum Spam 是免费服务。

我在我运行的每个 WordPress 网站上都广泛使用了 Akismet,但您也可以将其用于任何应用程序,包括 Laravel。您只需要调用它们的 API 或者使用现有的页面,例如 nickurt/laravel-akismet

Stop Forum Spam 是一项免费服务,听起来类似于 Akismet,也有像 nickurt/laravel-stopforumspam这样的 Laravel 软件包,可以帮助进行集成。

  1. 使用验证码阻止垃圾邮件

最后一道防线通常是验证码和 reCAPTCHA,现在有些服务不再需要将您的用户视为机器人。我们在 reCAPTCHA 软件包 教程中汇总了一些可用的服务。

***

在所有这些方法中,我建议从蜜罐开始,如果无效,则继续使用其他方法,直到阻止机器人攻击您的表单。请记住,今天有效的方法可能明天就不行了,所以这将永远是一场战斗。

Eric L. Barnes photo

Eric 是 Laravel 新闻的创始人,自 2012 年起就开始关注 Laravel。

Cube

Laravel 新闻通讯

加入 40,000 多名其他开发者,绝不错过新的技巧、教程等。

Laravel Forge logo

Laravel Forge

轻松创建和管理您的服务器,并在几秒钟内部署您的 Laravel 应用程序。

Laravel Forge
Tinkerwell logo

Tinkerwell

Laravel 开发人员必备的代码运行器。使用 AI、自动完成和本地和生产环境的即时反馈来调试代码。

Tinkerwell
No Compromises logo

绝不妥协

Joel 和 Aaron,来自“绝不妥协”播客的两名经验丰富的开发者,现在可以为您的 Laravel 项目提供服务。 ⬧ 固定价格为每月 7,500 美元。 ⬧ 无需冗长的销售流程。 ⬧ 无需签订合同。 ⬧ 100% 退款保证。

绝不妥协
Kirschbaum logo

Kirschbaum

提供创新和稳定性,确保您的 Web 应用程序取得成功。

Kirschbaum
Shift logo

Shift

使用的是旧版本的 Laravel 吗?立即获得自动化的 Laravel 升级和代码现代化,让您的应用程序保持新鲜。

Shift
Bacancy logo

Bacancy

仅需每月 2,500 美元,即可让经验丰富(4-6 年)的 Laravel 开发人员为您的项目增光添彩。获得 160 小时的专业知识和 15 天的无风险试用。立即预约电话!

Bacancy
Lucky Media logo

Lucky Media

立即获得幸运 - Laravel 开发的理想选择,拥有十多年的经验!

Lucky Media
Lunar: Laravel E-Commerce logo

Lunar:Laravel 电子商务

Laravel 电子商务。一个开源软件包,将现代无头电子商务功能的强大功能带到 Laravel。

Lunar:Laravel 电子商务
LaraJobs logo

LaraJobs

官方 Laravel 职位网站

LaraJobs
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit:Laravel SaaS 启动工具包

SaaSykit 是一款 Laravel SaaS 启动工具包,包含运行现代 SaaS 所需的所有功能。付款、精美结账、管理面板、用户仪表板、身份验证、现成组件、统计信息、博客、文档等。

SaaSykit:Laravel SaaS 启动工具包
Rector logo

Rector

您无缝升级 Laravel、降低成本并加速创新的合作伙伴,助力企业取得成功

Rector
MongoDB logo

MongoDB

通过 MongoDB 和 Laravel 的强大集成来增强您的 PHP 应用程序,使开发人员能够轻松高效地构建应用程序。支持事务、搜索、分析和移动用例,同时使用熟悉的 Eloquent API。了解灵活、现代的 MongoDB 数据库如何改变您的 Laravel 应用程序。

MongoDB
Maska is a Simple Zero-dependency Input Mask Library image

Maska 是一款简单的零依赖输入掩码库

阅读文章
Add Swagger UI to Your Laravel Application image

在您的 Laravel 应用程序中添加 Swagger UI

阅读文章
Assert the Exact JSON Structure of a Response in Laravel 11.19 image

在 Laravel 11.19 中断言响应的精确 JSON 结构

阅读文章
Build SSH Apps with PHP and Laravel Prompts image

使用 PHP 和 Laravel Prompts 构建 SSH 应用程序

阅读文章
Building fast, fuzzy site search with Laravel and Typesense image

使用 Laravel 和 Typesense 构建快速、模糊的网站搜索

阅读文章
Add Comments to your Laravel Application with the Commenter Package image

使用 Commenter 软件包向您的 Laravel 应用程序添加评论

阅读文章