Comment empêcher l'enregistrement de compte spam, à part activer CAPTCHA sur les formulaires (que j'ai déjà essayé)? Nous avons affaire à un flot constant d'entre eux.
Le champ du prénom est toujours des caractères russes, donc à défaut d'un itinéraire plus facile, peut-être un moyen de détecter un certain caractère et de bloquer l'enregistrement dans ce cas?
magento2
magento2.1.11
brackfost
la source
la source
Réponses:
Nous sommes passés par le même problème, la limitation de la longueur maximale avant a été facilement contournée (essayez-la vous-même en supprimant la classe de longueur maximale-25 du HTML).
Voici donc ce que j'ai trouvé:
Solution 1: blocage via IP: chaque abonnement à un compte utilise une IP différente de la Colombie au Vietnam ...
Solution 2: blocage via l'agent utilisateur: il peut être truqué ... Cela fonctionne si vous souhaitez limiter les taches des robots.
Solution 3: utilisez HoneyPot: peut fonctionner, mais si le bot vous a déjà concentré, je pense qu'il sait sûrement quels champs publier (voir: https://magento.stackexchange.com/a/104261/50635 )
Solution 4: Captcha (Magento ou Google): peut fonctionner mais certaines personnes ont dit qu'il était dépassé
Solution 5: Modifier le modèle d'e-mail et ajouter l'e - mail de confirmation :
Solution 6: Mettez à jour les règles de limitation des champs à partir de la base de données: directement dans la table customer_eav_attribute , mettez à jour les lignes avec attribute_id = 5 [prénom] et attribute_id = 7 [nom] et remplacez 255 par 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;}
La solution 6 semble le moyen le plus rapide et le plus efficace de prévenir les spambots, car ils utilisent plus de 25 caractères.
Depuis, AUCUN PLUS DE FAUX COMPTE n'a été créé! Problème résolu.
S'ils essaient avec moins, cela les limitera au moins dans leur tentative de phishing.
Vous pouvez vérifier combien d'utilisateurs ont déjà un prénom ou un nom de famille de plus de 25 caractères, dans notre cas, vraiment mineur:
la source
Étant donné que nous parlons d'enregistrement de compte, il semble que vous soyez sur la bonne voie. Avez-vous essayé de changer le sujet d'enregistrement par e-mail?
c'est probablement sur app / locale / yourlanguage / template / email / account_new.html
la source
En complément, j'ai supprimé les comptes spam avec le code suivant:
la source
App/Code/Ibex/Deleter/view/frontend/templates/customer.phtml
puis créé undeleter_index_index.xml
fichierDeleter/view/frontend/layout
avec <block class = "Ibex \ Deleter \ Block \ Delete" name = "delete" template = "Ibex_Deleter :: character.phtml" /> là-dedans de sorte que lorsque vous allez sur yoursite.com/deleter le code s'exécuterait. Assurez-vous simplement de désactiver et de supprimer le module par la suite.Utilisez cloudflare ou un autre pare-feu pour bloquer certains pays si vous le pouvez. Chine, Hong Kong, Russie. Cela n'empêche cependant pas tous les spams et ne fonctionne pas si vous avez besoin de ces pays pour pouvoir y accéder bien sûr. Mais il m'a été utile de me laisser réellement utiliser le panneau d'administration car le serveur devenait assez dur.
Activez la construction dans Google Recaptcha ou utilisez un plugin alternatif si vous n'avez pas mis à jour Magento vers 2.3.0+
Dans Magento 2.3 pour activer le reCAPTCHA intégré de Google.
1) Visitez Boutiques> Paramètres> Configuration> Sécurité> Google reCAPTCHA 2) Générez recaptcha invisible Recaptcha v2 ou je ne suis pas un bot de clés. 3) Saisissez-les dans la configuration d'administration sur cette page et activez-la sur le frontend pour une utilisation dans Create user.
Cependant, l'activation d'autres fonctionnalités ne peut pas vraiment nuire.
Pour nettoyer les comptes existants, recherchez des modèles dans leur entrée et créez des requêtes pour les sélectionner tout en vous assurant que vos utilisateurs normaux ne font pas partie de cet ensemble de données.
Vous pouvez les supprimer de la table customer_entity.
Exemple de SQL à partir d'un site que j'ai nettoyé: créez le vôtre car il devrait être conscient de vos circonstances, votre ensemble de données, etc. ne me tient pas responsable si vous effacez les mauvais utilisateurs, prenez la sauvegarde en premier!
Assurez-vous que l'ancien Magento Captcha de base est désactivé. Clients> Configuration client> CAPTCHA
Activer CAPTCHA sur la vitrine: Non
Comme il entrera en conflit avec le reCAPTCHA de Google ...
Liens vers la documentation officielle:
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
Les bots semblent juste toucher le point de terminaison de création de compte (Oui, même si vous supprimez les boutons / liens Créer un compte de votre thème), mais la suppression de leurs comptes ou leur désactivation est recommandée car ils pourraient dormir jusqu'à plus tard et spammer d'autres choses et utiliser de l'espace dans votre DB de toute façon ....
Bonne chance à tous.
la source
Vous pouvez facilement mettre les domaines à bloquer et définir le message d'erreur à afficher lorsqu'un utilisateur tente de s'inscrire avec un domaine de messagerie sur votre liste de blocage. Les instructions complètes sont les suivantes -
Créez un nouveau module avec un nom EmailCheck dans le dossier Ecomsolver
Étape - 1 Écrivez le code suivant dans le panneau d'administration. Le chemin du fichier sera -
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>
Étape - 2 Écrivez le code suivant dans un fichier. Le chemin du fichier sera -
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>
Étape - 3 Écrivez le code suivant dans un fichier XML avec le nom Config. Le chemin du fichier sera -
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>
Étape - 4 Écrivez le code suivant dans un fichier XML avec le nom Module. Le chemin du fichier sera -
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>
Étape - 5 Créez le nom du dossier Model dans EmailCheck. Créez ensuite un sous-dossier
Plugin > Controller > Account
. Écrivez le code suivant dans le fichier php avec le nom RestrictCustomerEmail. Le chemin du fichier php sera -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 {
la source
Je l'ai résolu en ajoutant le code suivant à .htaccess en tant que lot de débogage, je n'ai rien trouvé, mais lorsque j'ai créé un événement sur la sauvegarde du client après l'avoir obtenu, puis son resloved maintenant.
la source