Wie kann ich die Registrierung eines Spam-Kontos verhindern, abgesehen davon, dass CAPTCHA auf Formularen aktiviert wird (was ich bereits versucht habe)? Wir haben es mit einer stetigen Flut von ihnen zu tun.
Das Feld für den Vornamen besteht immer aus russischen Zeichen. Wenn Sie also eine einfachere Route nicht finden, können Sie möglicherweise ein bestimmtes Zeichen erkennen und in diesem Fall die Registrierung blockieren.
magento2
magento2.1.11
Brackfost
quelle
quelle
Antworten:
Wir haben das gleiche Problem durchlaufen, die Begrenzung der vorderen MaxLänge wurde leicht umgangen (versuchen Sie es selbst, indem Sie die Klasse mit der maximalen Länge von 25 aus HTML entfernen ).
Also hier ist was ich gefunden habe:
Lösung 1: Blockieren über IP: Jedes Kontoabonnement verwendet eine andere IP von Kolumbien nach Vietnam ...
Lösung 2: Blockieren über User Agent: Es kann gefälscht werden ... Es funktioniert, wenn Sie Crawler-Blots begrenzen möchten.
Lösung 3: Verwenden Sie HoneyPot: funktioniert möglicherweise, aber wenn der Bot Sie bereits fokussiert hat, weiß er sicher, welche Felder zu posten sind (siehe: /magento//a/104261/50635) ).
Lösung 4: Captcha (Magento oder Google): funktioniert möglicherweise, aber einige Leute sagten, es sei übergangen worden
Lösung 5: Bearbeiten Sie die E- Mail-Vorlage und fügen Sie die Bestätigungs-E-Mail hinzu :
Lösung 6: Aktualisieren Sie die Felder-Begrenzungsregeln aus der Datenbank: Aktualisieren Sie direkt in der Tabelle customer_eav_attribute die Zeilen mit attribute_id = 5 [Vorname] und attribute_id = 7 [Nachname] und ersetzen Sie 255 durch 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;}
Lösung 6 scheint der schnellste und effektivste Weg zu sein, um Spambots zu verhindern, da sie mehr als 25 Zeichen verwenden.
Seitdem wurde KEIN FAKE ACCOUNT mehr erstellt! Problem gelöst.
Wenn sie es mit weniger versuchen, werden sie zumindest in ihrem Phishing-Versuch eingeschränkt.
Sie können überprüfen, wie viele Benutzer bereits einen Vor- oder Nachnamen mit mehr als 25 Zeichen haben, in unserem Fall wirklich geringfügig:
quelle
Wenn man bedenkt, dass es sich um eine Kontoregistrierung handelt, scheinen Sie auf dem richtigen Weg zu sein. Haben Sie versucht, den Betreff der E-Mail-Registrierung zu ändern?
Es befindet sich wahrscheinlich in app / locale / yourlanguage / template / email / account_new.html
quelle
Als zusätzliche Anmerkung habe ich die Spam-Konten mit dem folgenden Code gelöscht:
quelle
App/Code/Ibex/Deleter/view/frontend/templates/customer.phtml
und dann einedeleter_index_index.xml
DateiDeleter/view/frontend/layout
mit <block class = "Ibex \ Deleter \ Block \ Delete" name = "delete" template = "Ibex_Deleter :: character.phtml" /> darin eingefügt, damit wann Sie gehen zu yoursite.com/deleter, um den Code auszuführen. Deaktivieren und löschen Sie das Modul anschließend.Verwenden Sie Cloudflare oder eine andere Firewall, um einige Länder zu blockieren, wenn Sie können. China, Hong Kong, Russland. Dies stoppt jedoch nicht den gesamten Spam und funktioniert nicht, wenn Sie diese Länder benötigen, um natürlich darauf zugreifen zu können. Aber es war hilfreich, mich das Admin-Panel tatsächlich benutzen zu lassen, da der Server ziemlich hart wurde.
Aktivieren Sie den Build in Google Recaptcha oder verwenden Sie ein alternatives Plugin, wenn Sie Magento nicht auf 2.3.0+ aktualisiert haben
In Magento 2.3, um das eingebaute Google reCAPTCHA zu aktivieren.
1) Besuchen Sie Stores> Einstellungen> Konfiguration> Sicherheit> Google reCAPTCHA. 2) Generieren Sie unsichtbares Recaptcha v2-Recaptcha, oder ich bin kein Bot-Schlüssel. 3) Geben Sie sie in die Administratorkonfiguration auf dieser Seite ein und aktivieren Sie sie im Frontend für die Verwendung in Benutzer erstellen.
Das Aktivieren für andere Funktionen kann jedoch auch nicht wirklich schaden.
Suchen Sie zum Bereinigen vorhandener Konten nach Mustern in ihren Eingaben und erstellen Sie Abfragen, um sie auszuwählen, während Sie sicherstellen, dass Ihre normalen Benutzer nicht Teil dieses Datensatzes sind.
Sie können sie aus der Tabelle customer_entity löschen.
Beispiel SQL von einer Site, die ich bereinigt habe: Erstellen Sie Ihre eigene, da es Ihre Umstände berücksichtigen müsste. Ihr Datensatz usw. macht mich nicht verantwortlich, wenn Sie falsche Benutzer löschen, die zuerst ein Backup erstellen!
Stellen Sie sicher, dass das alte grundlegende Magento Captcha deaktiviert ist. Kunden> Kundenkonfiguration> CAPTCHA
Aktivieren Sie CAPTCHA in Storefront: Nein
Da es zu Konflikten mit Google reCAPTCHA kommen wird ...
Offizielle Dokumentationslinks:
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
Die Bots scheinen nur den Endpunkt für die Kontoerstellung zu erreichen (Ja, auch wenn Sie die Schaltflächen / Links zum Erstellen eines Kontos aus Ihrem Thema löschen). Es wird jedoch empfohlen, ihre Konten zu löschen oder zu deaktivieren, da sie bis zu einem späteren Zeitpunkt schlafen und andere Dinge spammen können und Speicherplatz verbrauchen deine DB sowieso ....
Allen viel Glück.
quelle
Sie können die Domänen einfach blockieren und die Fehlermeldung festlegen, die angezeigt wird, wenn ein Benutzer versucht, sich bei einer E-Mail-Domäne in Ihrer Sperrliste zu registrieren. Die vollständigen Anweisungen lauten wie folgt:
Erstellen Sie ein neues Modul mit dem Namen EmailCheck im Ordner Ecomsolver
Schritt - 1 Schreiben Sie den folgenden Code in das Admin-Panel. Der Pfad der Datei lautet -
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>
Schritt - 2 Schreiben Sie den folgenden Code in eine Datei. Der Pfad der Datei lautet -
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>
Schritt - 3 Schreiben Sie den folgenden Code in eine XML-Datei mit dem Namen Config. Der Pfad der Datei lautet -
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>
Schritt - 4 Schreiben Sie den folgenden Code in eine XML-Datei mit dem Namen Module. Der Pfad der Datei lautet -
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>
Schritt - 5 Erstellen Sie den Ordnernamen Model in EmailCheck. Erstellen Sie dann einen Unterordner
Plugin > Controller > Account
. Schreiben Sie den folgenden Code in die PHP-Datei mit dem Namen RestrictCustomerEmail. Pfad der PHP-Datei wird sein -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 {
quelle
Ich habe es behoben, indem ich den folgenden Code zu .htaccess als Debugging-Los hinzugefügt habe. Ich habe nichts gefunden, aber als ich ein Ereignis beim Speichern des Kunden erstellt habe, nachdem ich dies erhalten habe und es jetzt wieder entfernt wurde.
quelle