Paket pencegahan spam sederhana untuk Laravel 5.4 dan 5.5.
Jalankan perintah ini di dalam terminal Anda untuk menambahkan paket ke dalam proyek Anda.
composer require devarjhay/honeypot
Tambahkan paket ke penyedia layanan aplikasi Anda di file 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,
],Optimalkan aplikasi
php artisan optimize
Publikasikan file konfigurasi paket dan terjemahan ke aplikasi Anda. Jalankan perintah ini di dalam terminal Anda.
php artisan vendor:publish --provider="DevArjhayHoneypotProvidersHoneypotServiceProvider"
Atau, Anda mungkin ingin mempublikasikan file secara individual.
php artisan vendor:publish --provider="DevArjhayHoneypotProvidersHoneypotServiceProvider" --tag="config"
php artisan vendor:publish --provider="DevArjhayHoneypotProvidersHoneypotServiceProvider" --tag="lang"
Tambahkan input tersembunyi honeypot ke dalam bentuk Anda dengan memasukkan Honeypot::make(...) seperti ini:
< 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 > Metode make akan menghasilkan input HTML berikut. (Bidang honeypot_time akan menghasilkan tmestamps terenkripsi.
< 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 >Setelah menambahkan bidang honeypot. Tambahkan aturan validasi untuk bidang waktu honeypot dan madu.
$ this -> validate ( $ request , [
...
' honeypot_name ' => ' honeypot ' ,
' honeypot_time ' => ' required|honeytime:5 '
]);Harap dicatat bahwa Anda perlu menentukan jumlah detik di honeytime. Diperlukan bagi pengguna untuk mengisi formulir. Jika butuh waktu lebih sedikit daripada formulir itu dianggap sebagai pengajuan spam.
Saya harap Anda menikmati mendapatkan lebih sedikit spam saat pengguna mengirimkan formulir.
Proyek ini didasarkan pada https://github.com/msurguy/honeypot - Maksim Surguy
Pekerjaan Asli di https://github.com/ianlandsman/honeypot - Ian Landsman
Lisensi MIT
Hak Cipta (C) 2017 Arjhay Delos Santos
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
Pemberitahuan hak cipta di atas dan pemberitahuan izin ini harus dimasukkan dalam semua salinan atau bagian substansial dari perangkat lunak.
Perangkat lunak ini disediakan "sebagaimana adanya", tanpa jaminan apa pun, tersurat maupun tersirat, termasuk tetapi tidak terbatas pada jaminan dapat diperjualbelikan, kebugaran untuk tujuan tertentu dan nonpringement. Dalam hal apa pun penulis atau pemegang hak cipta tidak akan bertanggung jawab atas klaim, kerusakan atau tanggung jawab lainnya, baik dalam tindakan kontrak, gugatan atau sebaliknya, timbul dari, di luar atau sehubungan dengan perangkat lunak atau penggunaan atau transaksi lain dalam perangkat lunak.