codenexus / laravel-honeypot
蜜罐垃圾邮件预防。
Requires
- php: ^7.0
- laravel/framework: ^5.5|^5.6|^5.7
Requires (Dev)
- phpunit/phpunit: ^6.3|^7.0
This package is auto-updated.
Last update: 2023-01-17 09:49:03 UTC
README
Laravel应用程序的蜜罐垃圾邮件预防
兼容性
Laravel 5.3 - 5.6
如何工作?
垃圾邮件预防的“蜜罐”方法是一种简单而有效的方式,可以阻止一些来到你网站的垃圾邮件机器人。这种技术基于创建一个应该被应用程序的真实用户留空的输入字段,但很可能会被垃圾邮件机器人填写。
该包创建两个隐藏的输入字段,蜜罐字段(如“my_name”)和一个蜜罐时间字段 - 一个标记页面何时被发送给用户的加密时间戳。当包含这些对用户不可见的输入字段的表单提交到你的应用程序时,该包附带的自定义验证器会检查蜜罐字段是否为空,并检查用户填写表单所需的时间。如果表单填写得太快(即少于5秒)或者如果蜜罐字段中填入了值,那么这次提交很可能是来自垃圾邮件机器人。
安装
在终端中输入: composer require codenexus/laravel-honeypot
并将包版本指定为 "dev-master"。或者打开 composer.json 并在 "require" 下添加以下行
"require": { "codenexus/laravel-honeypot": "dev-master" }
接下来,在 app/config/app.php
的 'providers' 部分中添加此行
/* * Package Service Providers... */ ... Codenexus\Honeypot\HoneypotServiceProvider::class,
将蜜罐外观添加到 'aliases'
... 'Honeypot' => Codenexus\Honeypot\Facades\Honeypot::class,
到此,包已安装,您可以使用它如下。
用法
通过插入 Honeypot::fill(..)
将蜜罐捕捉器添加到您的表单中
{!! Honeypot::fill('my_name', 'my_time'); !!}
fill
方法将输出以下 HTML 标记(my_time
字段将包含加密的时间戳)
<input type="hidden" id="my_name" name="my_name" value=""> <input type="hidden" name="my_time" value="eyJpdiI6IkxoeWhKc3prN2puZllEajRwZ3lrc0I5bU42bUFWbzF1NEVVOEhxbG9WcFE9IiwidmFsdWUiOiJxNEtBT0NpYW5lUjJvWXp6VE45a1U0V3dNbk9Jd2RUNW42NFpiQWtTRllRPSIsIm1hYyI6IjAyMWQ0NWI1NTVkYTBjZTAxMTdhZmJmNTY0ZDI4Nzg4NzU3ODU4MjM1Y2MxNTVkYjAwNmFhNzBmNTdlNmJmMjkifQ==">
在将蜜罐字段添加到标记中并使用指定的宏后,添加对表单的蜜罐和蜜罐时间字段的验证
$this->validate($request, [ ... 'my_name' => 'honeypot', 'my_time' => 'required|honeytime:5' ]);
请注意,“蜜罐时间”参数指定了用户填写表单所需的时间(秒数)。如果时间少于该参数,则表单被视为垃圾邮件提交。
就这些!享受减少邮箱中的垃圾邮件吧。
致谢
基于 Ian Landsman 的原始作品: https://github.com/ianlandsman/Honeypot 以及 Maks Surguy 的重制: https://github.com/msurguy/Honeypot