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(...)這樣的honeypot隱藏輸入中的隱藏輸入:
< 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和Honey Time字段的驗證規則。
$ this -> validate ( $ request , [
...
' honeypot_name ' => ' honeypot ' ,
' honeypot_time ' => ' required|honeytime:5 '
]);請注意,您需要指定蜂蜜時間中的秒數。用戶應該需要填寫表格。如果花費的時間少於表格被視為垃圾郵件提交。
希望您在用戶提交表格時喜歡少量垃圾郵件。
該項目基於https://github.com/msurguy/honeypot - Maksim Surguy
https://github.com/ianlandsman/honeypot上的原始作品 - 伊恩·蘭德斯曼(Ian Landsman)
麻省理工學院許可證
版權(C)2017 Arjhay Delos Santos
特此免費授予獲得此軟件副本和相關文檔文件副本(“軟件”)的任何人,以無限制處理該軟件,包括無限制的使用權,複製,複製,修改,合併,合併,發布,分發,分發,分發,訂婚,和/或允許軟件的副本,並允許對以下條件提供以下條件,以下是以下條件。
上述版權通知和此許可通知應包含在軟件的所有副本或大量部分中。
該軟件是“原樣”提供的,沒有任何形式的明示或暗示保證,包括但不限於適銷性,特定目的的適用性和非侵權的保證。在任何情況下,作者或版權持有人都不應對任何索賠,損害賠償或其他責任責任,無論是在合同,侵權的訴訟中還是其他責任,是由軟件,使用或與軟件中的使用或其他交易有關的。