codenexus/laravel-honeypot

该包已弃用,不再维护。未建议替代包。

蜜罐垃圾邮件预防。

1.0.1 2018-09-17 00:05 UTC

This package is auto-updated.

Last update: 2023-01-17 09:49:03 UTC


README

Latest Stable Version Total Downloads License composer.lock

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