Un simple ensemble de prévention du spam pour Laravel 5.4 et 5.5.
Exécutez cette commande à l'intérieur de votre terminal pour ajouter le package dans votre projet.
composer require devarjhay/honeypot
Ajoutez le package à vos fournisseurs de services d'application dans le fichier 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,
],Optimiser l'application
php artisan optimize
Publiez le fichier de configuration du package et les traductions dans votre application. Exécutez cette commande à l'intérieur de votre terminal.
php artisan vendor:publish --provider="DevArjhayHoneypotProvidersHoneypotServiceProvider"
Ou, vous pouvez publier le fichier individuellement.
php artisan vendor:publish --provider="DevArjhayHoneypotProvidersHoneypotServiceProvider" --tag="config"
php artisan vendor:publish --provider="DevArjhayHoneypotProvidersHoneypotServiceProvider" --tag="lang"
Ajoutez l'entrée cachée de la pot de miel dans votre forme en insérant Honeypot::make(...) comme ceci:
< 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 > La méthode make sortira l'entrée HTML suivante. (Le champ honeypot_time générera des tmestamps cryptés.
< 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 >Après avoir ajouté les champs de pot de miel. Ajoutez les règles de validation pour les champs de temps de miel et de miel.
$ this -> validate ( $ request , [
...
' honeypot_name ' => ' honeypot ' ,
' honeypot_time ' => ' required|honeytime:5 '
]);Veuillez noter que vous devez spécifier le nombre de secondes en miel. Il devrait prendre à l'utilisateur pour remplir le formulaire. S'il faut moins de temps que cela, le formulaire est considéré comme une soumission de spam.
J'espère que vous aimez obtenir un spam moins lorsque l'utilisateur soumet un formulaire.
Ce projet était basé sur https://github.com/msurguy/honeypot - Maksim Surguy
Travail original sur https://github.com/ianlandsman/honeypot - Ian Landsman
Licence MIT
Copyright (C) 2017 Arjhay Delos Santos
L'autorisation est accordée gratuitement à toute personne qui obtient une copie de ce logiciel et des fichiers de documentation associés (le "logiciel"), pour traiter le logiciel sans restriction, y compris sans limiter les droits d'utilisation, de copie, de modification, de fusion, de publication, de distribution, de sublince et / ou de vendre des copies des conditions suivantes.
L'avis de droit d'auteur ci-dessus et le présent avis d'autorisation sont inclus dans toutes les copies ou des parties substantielles du logiciel.
Le logiciel est fourni "tel quel", sans garantie d'aucune sorte, express ou implicite, y compris, mais sans s'y limiter, les garanties de qualité marchande, d'adéquation à un usage particulier et de non-contrefaçon. En aucun cas, les auteurs ou les détenteurs de droits d'auteur ne seront pas responsables de toute réclamation, dommage ou autre responsabilité, que ce soit dans une action de contrat, de délit ou autre, découlant de, hors du logiciel ou de l'utilisation ou d'autres relations dans le logiciel.