Ein einfaches Spam -Präventionspaket für Laravel 5.4 und 5.5.
Führen Sie diesen Befehl in Ihrem Terminal aus, um das Paket in Ihr Projekt hinzuzufügen.
composer require devarjhay/honeypot
Fügen Sie das Paket Ihren Anwendungsdienstanbietern in config/app.php -Datei hinzu.
' 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,
],Optimieren Sie die Anwendung
php artisan optimize
Veröffentlichen Sie die Paketkonfigurationsdatei und Übersetzungen in Ihre Anwendung. Führen Sie diesen Befehl in Ihrem Terminal aus.
php artisan vendor:publish --provider="DevArjhayHoneypotProvidersHoneypotServiceProvider"
Sie möchten die Datei möglicherweise einzeln veröffentlichen.
php artisan vendor:publish --provider="DevArjhayHoneypotProvidersHoneypotServiceProvider" --tag="config"
php artisan vendor:publish --provider="DevArjhayHoneypotProvidersHoneypotServiceProvider" --tag="lang"
Fügen Sie den Honeypot -versteckten Eingang in Ihre Form hinzu, indem Sie Honeypot::make(...) wie folgt einfügen:
< 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 > Die make -Methode gibt den folgenden HTML -Eingang aus. (Das Feld honeypot_time generiert verschlüsseltes 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 >Nach dem Hinzufügen der Honeypot -Felder. Fügen Sie die Validierungsregeln für die Honeypot- und Honey Time Fields hinzu.
$ this -> validate ( $ request , [
...
' honeypot_name ' => ' honeypot ' ,
' honeypot_time ' => ' required|honeytime:5 '
]);Bitte beachten Sie, dass Sie die Anzahl der Sekunden in Honeytime angeben müssen. Es sollte dauern, bis der Benutzer das Formular ausfüllt. Wenn es weniger Zeit dauert, wird das Formular als Spam -Einreichung angesehen.
Ich hoffe, Sie bekommen gerne einen weniger Spam, wenn der Benutzer ein Formular einreicht.
Dieses Projekt basierte auf https://github.com/msurguy/honeypot - Maksim Surguy
Originalarbeit auf https://github.com/ianlandsman/honeypot - Ian Landsman
MIT -Lizenz
Copyright (C) 2017 Arjhay Delos Santos
Die Erlaubnis wird hiermit einer Person, die eine Kopie dieser Software und zugehörigen Dokumentationsdateien (der "Software") erhält, kostenlos erteilt, um die Software ohne Einschränkung zu behandeln, einschließlich ohne Einschränkung der Rechte, zu verwenden, zu kopieren, zu modifizieren, zusammenzufassen, zu veröffentlichen, zu veröffentlichen, zu verteilen, zu verteilt, und/oder Kopien der Software zu ermöglichen, um Personen zu beanstanden, an denen die Software zugänglich ist, um die folgenden Bedingungen zu beantragen.
Die oben genannte Copyright -Mitteilung und diese Erlaubnisbekanntmachung müssen in alle Kopien oder wesentlichen Teile der Software enthalten sein.
Die Software wird "wie es ist" ohne Garantie jeglicher Art, ausdrücklich oder stillschweigend bereitgestellt, einschließlich, aber nicht beschränkt auf die Gewährleistung der Handelsfähigkeit, die Eignung für einen bestimmten Zweck und die Nichtverletzung. In keinem Fall sind die Autoren oder Urheberrechtsinhaber für Ansprüche, Schäden oder andere Haftungen haftbar, sei es in einer Vertragsklage, unerbittlich oder auf andere Weise, die sich aus oder im Zusammenhang mit der Software oder anderen Geschäften in der Software ergeben.