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::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フィールドは、暗号化されたTMESTAMPを生成します。
< 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 >ハニーポットフィールドを追加した後。ハニーポットとハニータイムフィールドの検証ルールを追加します。
$ this -> validate ( $ request , [
...
' honeypot_name ' => ' honeypot ' ,
' honeypot_time ' => ' required|honeytime:5 '
]);Honeytimeの秒数を指定する必要があることに注意してください。ユーザーがフォームに記入するにはかかるはずです。それよりも時間がかかる場合、フォームはスパムの提出と見なされます。
ユーザーがフォームを送信するときに、より少ないスパムを取得することを楽しんでいただければ幸いです。
このプロジェクトは、https://github.com/msurguy/honeypot - maksim surguyに基づいていました
https://github.com/ianlandsman/honeypotのオリジナル作品 - Ian Landsman
MITライセンス
Copyright(c)2017 Arjhay Delos Santos
このソフトウェアと関連するドキュメントファイル(「ソフトウェア」)のコピーを入手して、制限なしにソフトウェアを扱うために、このソフトウェアを制限する権利を含め、ソフトウェアのコピーをコピー、変更、公開、配布、販売する、ソフトウェアのコピーを許可する人を許可する人を許可することを含めて、許可が無料で許可されます。
上記の著作権通知とこの許可通知は、ソフトウェアのすべてのコピーまたはかなりの部分に含まれるものとします。
このソフトウェアは、商品性、特定の目的への適合性、および非侵害の保証を含むがこれらに限定されない、明示的または黙示的なものを保証することなく、「現状のまま」提供されます。いかなる場合でも、著者または著作権所有者は、契約、不法行為、またはその他の訴訟、ソフトウェアまたはソフトウェアの使用またはその他の取引に関連する、またはその他の契約、またはその他の請求、またはその他の責任について責任を負いません。