Простой пакет предотвращения спама для Laravel 5.4 и 5.5.
Запустите эту команду внутри вашего терминала, чтобы добавить пакет в свой проект.
composer require devarjhay/honeypot
Добавьте пакет в поставщики услуг ваших приложений в файле config/app.php .
' providers ' => [
/*
* Laravel Framework Service Providers...
*/
Illuminate Translation TranslationServiceProvider::class,
Illuminate Validation ValidationServiceProvider::class,
Illuminate View ViewServiceProvider::class,
...
/*
* Package Service Providers...
*/
DevArjhay Honeypot Providers HoneypotServiceProvider::class,
],Оптимизируйте приложение
php artisan optimize
Опубликуйте файл конфигурации пакета и переводы в ваше приложение. Запустите эту команду в вашем терминале.
php artisan vendor:publish --provider="DevArjhayHoneypotProvidersHoneypotServiceProvider"
Или вы можете опубликовать файл индивидуально.
php artisan vendor:publish --provider="DevArjhayHoneypotProvidersHoneypotServiceProvider" --tag="config"
php artisan vendor:publish --provider="DevArjhayHoneypotProvidersHoneypotServiceProvider" --tag="lang"
Добавьте Honeypot скрытый ввод в вашу форму, вставив Honeypot::make(...)
< form action =" ... " method =" ... " >
{!! Honeypot::make('honeypot_name', 'honeypot_time') !!}
</ form > < form action =" ... " method =" ... " >
{!! honeypot('honeypot_name', 'honeypot_time') !!}
</ form > < form action =" ... " method =" ... " >
@honeypot('honeypot_name', 'honeypot_time')
</ form > Метод make выведет следующий вход HTML. (Поле honeypot_time будет генерировать зашифрованные Tmestamps.
< div id =" honeypot_name_wrap " style =" display: none; " >
< input type =" text " name =" honeypot_name " id =" honeypot_name " value ="" autocomplete =" off " >
< input type =" text " name =" honeypot_time " id =" honeypot_time " value =" encrypted timestamp " autocomplete =" off " >
</ div >После добавления поля Honeypot. Добавьте правила валидации для полей Honeypot и Honey Time.
$ this -> validate ( $ request , [
...
' honeypot_name ' => ' honeypot ' ,
' honeypot_time ' => ' required|honeytime:5 '
]);Обратите внимание, что вам нужно указать количество секунд в Honeytime. Пользователь должен потребоваться, чтобы заполнить форму. Если требуется меньше времени, чем то, что форма рассматривается как спам -подчинение.
Я надеюсь, что вам понравится меньше спама, когда пользователь отправляет форму.
Этот проект был основан на https://github.com/msurguy/honeypot - Maksim surguy
Оригинальная работа на https://github.com/ianlandsman/honeypot - Ян Ландсман
MIT Лицензия
Copyright (C) 2017 Arjhay Delos Santos
Настоящим дается разрешение, бесплатно, любому лицу, получающему копию этого программного обеспечения и связанные с ними файлы документации («Программное обеспечение»), чтобы иметь дело в программном обеспечении без ограничений, включая, без ограничения, права на использование, копирование, изменение, объединение, публикацию, распределение, сублиценность и/или продавать копии программного обеспечения и разрешения лиц, на которые программное обеспечение подходит для того, чтобы поступить так, чтобы поступить на следующие условия: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: на следующие условия: к следующим условиям: на следующие условия: на следующие условия.
Вышеуказанное уведомление об авторском праве и это уведомление о разрешении должно быть включено во все копии или существенные части программного обеспечения.
Программное обеспечение предоставляется «как есть», без гарантии любого рода, явного или подразумеваемого, включая, помимо прочего, гарантии товарной пригодности, пригодности для определенной цели и несоответствия. Ни в коем случае авторы или владельцы авторских прав не будут нести ответственность за любые претензии, убытки или другую ответственность, будь то в действии контракта, деликт или иным образом, возникающие из или в связи с программным обеспечением или использованием или другими сделками в программном обеспечении.