Un paquete simple de prevención de spam para Laravel 5.4 y 5.5.
Ejecute este comando dentro de su terminal para agregar el paquete a su proyecto.
composer require devarjhay/honeypot
Agregue el paquete a sus proveedores de servicios de aplicación en el archivo 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,
],Optimizar la aplicación
php artisan optimize
Publique el archivo de configuración del paquete y las traducciones a su aplicación. Ejecute este comando dentro de su terminal.
php artisan vendor:publish --provider="DevArjhayHoneypotProvidersHoneypotServiceProvider"
O es posible que desee publicar el archivo individualmente.
php artisan vendor:publish --provider="DevArjhayHoneypotProvidersHoneypotServiceProvider" --tag="config"
php artisan vendor:publish --provider="DevArjhayHoneypotProvidersHoneypotServiceProvider" --tag="lang"
Agregue la entrada oculta de honeypot a su formulario insertando Honeypot::make(...) así:
< 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 > El método make emitirá la siguiente entrada HTML. (El campo honeypot_time generará un tmestamps encriptado.
< 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 >Después de agregar los campos de honeypot. Agregue las reglas de validación para los campos de tiempo de honeypot y miel.
$ this -> validate ( $ request , [
...
' honeypot_name ' => ' honeypot ' ,
' honeypot_time ' => ' required|honeytime:5 '
]);Tenga en cuenta que necesita especificar el número de segundos en Honeytime. Debe tardar el usuario en completar el formulario. Si lleva menos tiempo que el formulario se considera como una sumisión de spam.
Espero que disfrute de obtener un menos spam cuando el usuario envíe un formulario.
Este proyecto se basó en https://github.com/msurguy/honeypot - Maksim Surguy
Trabajo original en https://github.com/ianlandsman/honeypot - Ian Landsman
Licencia de MIT
Copyright (c) 2017 Arjhay Delos Santos
El permiso se otorga, de forma gratuita, a cualquier persona que obtenga una copia de este software y archivos de documentación asociados (el "software"), para tratar en el software sin restricción, incluidos los derechos de los derechos de usar, copiar, modificar, fusionar, publicar, distribuir, sublicense y/o vender copias del software, y para permitir que las personas a quienes se les proporciona el software para hacer, sujeto a las siguientes condiciones: las siguientes condiciones: las siguientes condiciones: las siguientes condiciones:
El aviso de derechos de autor anterior y este aviso de permiso se incluirán en todas las copias o porciones sustanciales del software.
El software se proporciona "tal cual", sin garantía de ningún tipo, expresa o implícita, incluidas, entre otros, las garantías de comerciabilidad, idoneidad para un propósito particular y no infracción. En ningún caso los autores o titulares de derechos de autor serán responsables de cualquier reclamo, daños u otra responsabilidad, ya sea en una acción de contrato, agravio o de otra manera, que surge, de o en relación con el software o el uso u otros tratos en el software.