Bagaimana mencegah pendaftaran akun spam, selain mengaktifkan CAPTCHA pada formulir (yang sudah saya coba)? Kami sedang menghadapi banjir yang stabil dari mereka.
Bidang nama depan selalu karakter Rusia, jadi gagal dengan rute yang lebih mudah, mungkin cara untuk mendeteksi karakter tertentu dan memblokir pendaftaran dalam kasus itu?
magento2
magento2.1.11
brackfost
sumber
sumber
Jawaban:
Kami mengalami masalah yang sama, batasan maxlength depan dilewati dengan mudah (coba sendiri dengan menghapus kelas maksimum-panjang-25 dari html).
Jadi inilah yang saya temukan:
Solusi 1: Memblokir melalui IP: setiap langganan akun menggunakan IP yang berbeda dari Kolombia ke Vietnam ...
Solusi 2: Memblokir melalui agen Pengguna: dapat dipalsukan ... Ini berfungsi jika Anda ingin membatasi titik perayap.
Solusi 3: Gunakan HoneyPot: mungkin berhasil, tetapi jika bot sudah memfokuskan Anda, saya pikir pasti tahu bidang mana yang akan dikirim (lihat: https://magento.stackexchange.com/a/104261/50635 )
Solusi 4: Captcha (Magento atau Google): mungkin berfungsi tetapi beberapa orang mengatakan itu dilewati
Solusi 5: Edit templat email dan Tambahkan email konfirmasi :
Solusi 6: Perbarui aturan pembatasan bidang dari database: langsung di tabel customer_eav_attribute , perbarui baris dengan atribut_id = 5 [nama depan] dan atribut_id = 7 [nama belakang] dan ganti 255 dengan 25 :
a:2:{s:15:"max_text_length";i:255;s:15:"min_text_length";i:1;}
a:2:{s:15:"max_text_length";i:25;s:15:"min_text_length";i:1;}
Solusi 6 tampaknya cara tercepat dan lebih efektif untuk mencegah robot spam, karena mereka menggunakan lebih dari 25 karakter.
Sejak itu, TIDAK ADA LEBIH BANYAK ACCOUNT PALSU! Masalah terpecahkan.
Jika mereka mencoba dengan lebih sedikit, itu setidaknya akan membatasi mereka dalam upaya phishing mereka.
Anda dapat memeriksa berapa banyak pengguna yang memiliki nama depan atau nama belakang lebih dari 25 karakter, dalam kasus kami, sangat kecil:
sumber
Menimbang bahwa kita berbicara tentang Pendaftaran Akun, sepertinya Anda berada di jalan yang benar. Sudahkah Anda mencoba mengubah subjek pendaftaran email?
itu mungkin ada di app / locale / yourlanguage / template / email / account_new.html
sumber
Sebagai catatan tambahan, saya menghapus akun spam dengan kode berikut:
sumber
App/Code/Ibex/Deleter/view/frontend/templates/customer.phtml
dan kemudian membuatdeleter_index_index.xml
fileDeleter/view/frontend/layout
dengan <block class = "Ibex \ Deleter \ Block \ Delete" name = "delete" template = "Ibex_Deleter :: character.phtml" /> di sana sehingga ketika Anda pergi ke yoursite.com/deleter kode akan dijalankan. Pastikan untuk menonaktifkan dan menghapus modul setelahnya.Gunakan cloudflare atau firewall lain untuk memblokir beberapa negara jika Anda bisa. Cina, Hong Kong, Rusia. Namun ini tidak menghentikan semua spam dan tidak berfungsi jika Anda memerlukan negara-negara tersebut untuk dapat mengakses tentunya. Tapi itu membantu untuk membiarkan saya benar-benar menggunakan panel admin karena server semakin dipalu.
Aktifkan build di Google Recaptcha atau gunakan plugin alternatif jika Anda belum memperbarui Magento ke 2.3.0+
Di Magento 2.3 untuk mengaktifkan reCAPTCHA bawaan di Google.
1) Kunjungi Toko> Pengaturan> Konfigurasi> Keamanan> Google reCAPTCHA 2) Hasilkan Recaptcha v2 recaptcha tak terlihat atau saya bukan kunci bot. 3) Masukkan mereka ke admin config di halaman itu dan aktifkan di frontend untuk Gunakan di Buat pengguna.
Mengaktifkan fitur lain juga tidak ada salahnya.
Untuk membersihkan akun yang ada, temukan pola dalam input mereka dan buat kueri untuk memilihnya sambil memastikan pengguna normal Anda bukan bagian dari set data itu.
Anda dapat menghapusnya dari tabel customer_entity.
Contoh SQL dari situs yang saya bersihkan: Buat milik Anda sendiri karena perlu memperhatikan keadaan Anda, dll. Dataset Anda tidak membuat saya bertanggung jawab jika Anda menghapus pengguna yang salah, buat cadangan terlebih dahulu!
Pastikan Captcha Magento dasar lama dinonaktifkan. Pelanggan> Konfigurasi Pelanggan> CAPTCHA
Aktifkan CAPTCHA di Etalase: Tidak
Karena akan bertentangan dengan Google reCAPTCHA ...
Tautan dokumentasi resmi:
https://docs.magento.com/m2/ce/user_guide/configuration/security/google-recaptcha.html
https://docs.magento.com/m2/ce/user_guide/stores/security-google-recaptcha.html
Bot sepertinya mengenai titik akhir pembuatan akun (Ya walaupun Anda menghapus tombol / tautan Buat Akun dari tema Anda) tetapi menghapus akun mereka atau menonaktifkannya disarankan karena mereka bisa tidur sampai nanti dan mengirim spam ke hal-hal lain dan mereka menggunakan ruang dalam Lagipula DB Anda ....
Semoga beruntung semuanya.
sumber
Anda dapat dengan mudah menempatkan domain untuk diblokir dan mengatur pesan kesalahan yang akan ditampilkan ketika pengguna mencoba mendaftar dengan domain email pada daftar blokir Anda. Instruksi lengkap adalah sebagai berikut -
Buat modul baru dengan nama EmailCheck di folder Ecomsolver
Langkah - 1 Tulis kode berikut di panel admin. Path file akan menjadi -
Ecomsolver >EmailCheck > etc > Adminhtml > System
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd"> <system> <tab id="ecomsolver" translate="label" sortOrder="999"> <label>Ecomsolver</label> </tab> <section id="emailblock" translate="label" sortOrder="130" showInDefault="1" showInWebsite="1" showInStore="1"> <class>separator-top</class> <label>Email Check</label> <tab>ecomsolver</tab> <resource>PixieMedia_General::general_config</resource> <group id="domains" translate="label" type="text" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1"> <label>Domain Names</label> <field id="domains" translate="label" type="textarea" sortOrder="1" showInDefault="1" showInWebsite="1" showInStore="1"> <label>Domain names to block</label> <comment>Comma separated values eg google.co.uk,mail.ru,some.com</comment> </field> <field id="message" translate="label" type="textarea" sortOrder="1" showInDefault="1" showInWebsite="1" showInStore="1"> <label>Message to display</label> <comment>The error message to show users who try to register with one of the above domain names</comment> </field> </group> </section> </system> </config>
Langkah - 2 Tulis kode berikut dalam file. Path file akan menjadi -
Ecomsolver >EmailCheck > etc > Frontend > di
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <type name="Magento\Customer\Controller\Account\CreatePost"> <plugin name="restrictCustomerEmail" type="Ecomsolver\Emailcheck\Model\Plugin\Controller\Account\RestrictCustomerEmail"/> </type> </config>
Langkah - 3 Tulis kode berikut dalam file XML dengan nama Config. Path file akan menjadi -
Ecomsolver >EmailCheck > etc > Config
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd"> <default> <emailblock> <domains> <domains>163.com,mail.ru</domains> </domains> <message> <domains>We do not allow registration from your email domain</domains> </message> </emailblock> </default> </config>
Langkah - 4 Tulis kode berikut dalam file XML dengan nama Module. Path file akan menjadi -
Ecomsolver >EmailCheck > etc > Module
<config xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd"> <module name="Ecomsolver_Emailcheck" setup_version="1.0.0"> </module> </config>
Langkah - 5 Buat Model nama folder di EmailCheck. Kemudian buat subfolder
Plugin > Controller > Account
. Tulis kode berikut dalam file php dengan nama RestrictCustomerEmail. Path dari file php adalah -Ecomsolver >EmailCheck > Plugin > Controller > Account > RestrictCustomerEmail
/*Ecomsolver @@@@@@ [email protected]*/ namespace Ecomsolver\Emailcheck\Model\Plugin\Controller\Account; use Magento\Framework\Controller\Result\RedirectFactory; use Magento\Framework\UrlFactory; use Magento\Framework\Message\ManagerInterface; use Magento\Framework\App\Config\ScopeConfigInterface; class RestrictCustomerEmail {
sumber
Saya telah mengatasinya dengan menambahkan kode berikut ke .htaccess sebagai banyak debugging, saya tidak menemukan apa pun kecuali ketika membuat satu peristiwa pada pelanggan simpan setelah saya mendapatkannya dan kemudian dipulihkan sekarang.
sumber