Jump to content

[SECURITE] SPAM Compte Client : solution [1.3 -> 1.7]


Recommended Posts

On ‎4‎/‎21‎/‎2019 at 6:06 PM, Eolia said:

NO PRESTASHOP 1.6 NOTES NOT WORK IN PHP 7.2 NO of a pipe !!!

For Mcrypt there is nothing to do if you stay in PHP 5.6

 

Eolia is this code from your site all we need or do we add the two doekia files as well? This is the only part that's unclear to me!

https://shop.devcustom.net/fr/content/9-mise-en-place-captcha?

Thank you Doekia & Eolia ya'll rock!

Link to comment
Share on other sites

4 hours ago, arnaudbh59 said:

voici l'adresse ip du magnifique bot:

85.10.56.3
 

Cher détective, je vous invite à lire le topic pour comprendre que connaître l'adresse ip d'un bot est clairement inutile.

Link to comment
Share on other sites

Je prends le train en route, j'ai lu le topic en diagonale, mais si je comprends bien il faut :

1- Créer un override de Validate.php contenant une nouvelle méthode de validation qui refuse les chaines contenant une URL (en gros)

2- Créer un autre override de Customer.php qui permet d'utiliser la nouvelle règle de validation pour le nom et le prénom

3- (optionnel) Mettre en place un captcha sur le formulaire d'inscription

J'ai bon ? J'ai rien oublié ?

Link to comment
Share on other sites

11 hours ago, arnaudbh59 said:

voici l'adresse ip du magnifique bot:

85.10.56.3
 

Cher détective, je vous invite à lire le topic pour comprendre que connaître l'adresse ip d'un bot est clairement inutile.

 

 

quand tu as du le voir dans un topic que j'ai ouvert j'ai suivi les conseils de Eolia, par contre pour les personnes qu'ils veulent le bloquer via IP, je donne ma contribution.

Link to comment
Share on other sites

bonjour et merci pour cette astuce qui fonctionne

seul soucis quand dans l'admin je veux supprimer un inscrit "douteux" avec un nom de famille non conforme j'ai ce message Property Customer->lastname is not valid

prestashop 1.6.09
fichiers validate et customer modifiés en override.

Link to comment
Share on other sites

1 hour ago, hit said:

bonjour et merci pour cette astuce qui fonctionne

seul soucis quand dans l'admin je veux supprimer un inscrit "douteux" avec un nom de famille non conforme j'ai ce message Property Customer->lastname is not valid

prestashop 1.6.09
fichiers validate et customer modifiés en override.

 

1 hour ago, Louise mallet said:

@hit il faut supprimer les mails et ensuite tu remets tes overrides !

 

Relisez les 2 options - intégralement - lorsque vous tentez de supprimer les comptes.

Supprimer toutes les données (leur permettre de se réinscrire) !!!!

 

A quoi vous sert de garder des emails poubelle dans vos prestashop?

Link to comment
Share on other sites

1 hour ago, hit said:

hello and thank you for this tip that works

only want to delete a registrant "questionable" with a non-compliant last name I have this message Property Customer-> lastname is not valid

prestashop 1.6.09
validate and customer files modified in override.

I just edit the last name myself manually. That seems to be best ticket. Then delete that account. It works!

Edited by Billy (see edit history)
Link to comment
Share on other sites

il y a 22 minutes, ksaan a dit :

@Eolia@doekia Je ne sais pas si vous savez, votre correctif a été transformé en module ici: https://github.com/factoriadigital/prestashop-spam-registers-solution

On sait mais on trouve ca débile^^ (et en plus l'auteur dans son post initial avait carrément piqué le code sans en citer l'auteur original)

Charger un zip en BO

Installer un module

Lancer l'usine à gaz Prestashop

Charger la base de données

Tout ça pour une unique action qui ne sera jamais renouvelée...

Link to comment
Share on other sites

Merci à vous pour ce correctif !

J'ai utilisé les 2 override sur un PS 1.6.1.10 et ça marche parfaitement.

ça tiendra le temps que ça tiendra, mais dans l'attente, ça me permet d'éviter d'installer re-captcha, qui est simple, certes, mais constitue tout de même une action en plus à réaliser pour valider le panier et finaliser la commande, ce qui n'est jamais bon.

Maintenant, je me demande vraiment ce que ces types ont dans la tête...
Comme si les prestashopeurs qui voient leur(s) boutique(s) se faire polluer allaient rester zen et se dire "Chouette, un nouveau site de fesses, j'y cours, merci de tuyau !".
Ou alors, ce n'est que la préparation d'une attaque ultérieure via l'envoi massif de formulaires de contact depuis les espaces clients. Les vrais titulaires des emails utilisés pour créer les comptes sur nos boutiques recevraient alors les copies de ces messages bourrées de liens vers d'autres sites très... intellectuels ! Du coup, nos boutiques pourraient se faire flagger spammeurs par les filtres anti-spam.

Edited by Odjavel (see edit history)
Link to comment
Share on other sites

Juste pour laisser un merci pour le correctif que je viens d'installer (après avoir bien pris le temps de tout lire parce que j'étais d'abord un peu perdu dans tout ça).

J'ai une vague d'inscriptions indésirables depuis ce week-end également. J'avais d'abord bloqué les ip pour essayer de contenir le problème, ne pouvant pas gérer ça tout de suite. Mais, évidemment, les adresses ip changeaient assez vite et certains comptes n'avaient pas d'ip visible.

Bref, j'ai placé les 2 overrides sur mon ftp (pas eu de modif à faire, tant mieux) et supprimé le class_index.
Petit test d'inscription bidon effectué : nom contenant une url bloqué, et aucun souci avec un nom sans url.

Y'a plus qu'à voir sur le long terme et s'ils ne trouvent pas une autre parade pour contourner ça.

Link to comment
Share on other sites

41 minutes ago, Odjavel said:

Comme si les prestashopeurs qui voient leur(s) boutique(s) se faire polluer allaient rester zen et se dire "Chouette, un nouveau site de fesses, j'y cours, merci de tuyau !".

Tu serais surpris de la bétise de certain. Même si il n'y a qu'un couillons tous les 100000 mails, vu le nombre envoyé le résultat est non nul

Link to comment
Share on other sites

38 minutes ago, Eolia said:

les adresses mail utilisées sont toutes fausses, donc au pire vous passerez comme spammeur auprès des domaines mails concernés si vous envoyez des newsletter vu qu'ils s'y inscrivent direct.

Je suis pas sûr qu'elles soient fausses (elle ne semblent pas suivre un pattern). J'ai plus l'impression que c'est un listing "qui date" et donc plus de 90% sont mort où ont fermé leur compte - qui était invariablement pollué.

Link to comment
Share on other sites

je suis même certain qu'elles ne sont pas fausses, sinon quel intérêt !
Par contre comme beaucoup sont en yahoo ou hotmail l'envoi des divers mails techniques de ta boutique seront pénalisés voir bloqués.
j'ai ce problème avec les mailings vers hotmail.

Link to comment
Share on other sites

Tout d'abord Merci à tous les 2, la solution marche parfaitement (url à la place du nom dans le formulaire de création de compte)
Par contre aprés avoir appliqué la solution ( https://shop.devcustom.net/fr/content/9-mise-en-place-captcha?content_only=1) pour le captcha sur la page de création de compte tout est ok, par contre j'ai un problème sur le formulaire de contact, une fois le captcha coché le formulaire ne s'envoit pas, la page charge sans envoyer le formulaire (aucun message d'erreur)
J'ai bien la class contact-form-box:

<form action="/contactez-nous" method="post" class="contact-form-box" enctype="multipart/form-data">

Version: 1.6.1.13
url: https://www.paradisducheval.fr/contactez-nous

Link to comment
Share on other sites

On 4/20/2019 at 9:34 AM, doekia said:

Dans votre classes classes/Validate.php - soit dans le code original, soit dans une override, ajoutez cette fonction


    public static function isCustomerName($name)
    {
        if (preg_match(Tools::cleanNonUnicodeSupport('/www|http/ui'),$name)) {
        	return false;
        }

        return preg_match(Tools::cleanNonUnicodeSupport('/^[^0-9!\[\]<>,;?=+()@#"°{}_$%:\/\\\*\^]*$/u'), $name);
    }

Modifiez ensuite dans classes/Customer.php


            'lastname' =>                    array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32),
            'firstname' =>                    array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32),

 par


            'lastname' =>                    array('type' => self::TYPE_STRING, 'validate' => 'isCustomerName', 'required' => true, 'size' => 32),
            'firstname' =>                    array('type' => self::TYPE_STRING, 'validate' => 'isCustomerName', 'required' => true, 'size' => 32),

 

Un script qui fait ça tout seul https://area51.enter-solutions.com/snippets/122

Pour les 1.3 et 1.4 c'est ici:

 

Buy Me a Coffee at ko-fi.com

 

EDIT: Je ne suis plus ce topic. Pour toute demande d'aide le concernant, merci d'utiliser un ticket support.

 

Bonjour à tous .

 

Je me permets d'écrire à cette solution de Doekia car , je suis peut être pas doué , mais j'ai essayé  d'appliquer cette demarche .

 

J'ai commencé par creer un fichier patch122.php dans l'admin et de Copier/coller le code dedans conformement aux instructions.

J'ai appelé la page https://mondomain/admintrucmuch/patch122.php

j'ai eu comme méssage "class Validate is now overrided .  The class Customer is already overrided. You should process manually. END" 

 

Ok pour la classe Valide dans mon dossier overirde / classe / validate contient bien le code : OK

je vais maintenant devoir remplacer une chaine de code dans la classe Customer dans l'override et la j'ai pas de code à remplacer 😕

 

Je vais donc voir dans la classe Customer en dehors du dossier override , et la je fichier est vide hormis les commentaires , donc pas de code a remplacer 😕

 

Ma question est : est-ce que il se peux qu'il n'y a pas de code a remplacer et donc juste d'ajouter celui ci ?

 

Je m'excuse de ma question bete , et merci à vous pour votre communauté et aide .

 

Philippe

Edited by allodev (see edit history)
Link to comment
Share on other sites

Bonjour a tous, quand on vous lis ca devient un débat sterile.

Pour régler un vrais problème mettez la solution complete et efficace mais arretez de polué car a la fin on ne comprend plus rien...

C'est serieux la !

La solution clair et net et plus de commentaires qui ne servent pas.... S'il vous plait .

Merci 😉

Link to comment
Share on other sites

il y a 19 minutes, [email protected] a dit :

Aprés avoir Patché votre site comme cité plus haut ,

Pour supprimer les comptes créer, il faut tout d'abord :

1/ Renommer chaque nom de client en prenant soins d'enlever les www et les points.

2/ les sélectionner tous  à la fois ensuite effectuer une suppression 

 

Bon courage à tous !

 

 

NON NON & NON !

Sélectionner tous les comptes de spam

Cliquer sur supprimer

Et cocher "Leur laisser la possibilité de se réinscrire" (ce qu'il ne pourront de toute façon pas^^

Sinon, Prestashop met à jour le client en le passant en "deleted" et pète sur la validation des champs. On l'a déjà expliqué 3 fois, c'est dingue quand même !!!

Link to comment
Share on other sites

1 hour ago, allodev said:

je vais maintenant devoir remplacer une chaine de code dans la classe Customer dans l'override et la j'ai pas de code à remplacer 😕

Je vais donc voir dans la classe Customer en dehors du dossier override , et la je fichier est vide hormis les commentaires , donc pas de code a remplacer 😕

Ma question est : est-ce que il se peux qu'il n'y a pas de code a remplacer et donc juste d'ajouter celui ci ?

Je m'excuse de ma question bete , et merci à vous pour votre communauté et aide .

Philippe

Dans ce cas, supprime ton override vide override/classes/Customer.php

et relance le patch122.php

Link to comment
Share on other sites

Pour ceux qui ont un accès shell, rapide script à l'arrache avec les indications de @Eolia (testé uniquement sur CentOS) :

#!/bin/bash

cd $1
if type curl 2>/dev/null; then
  curl -o patch122.php https://area51.enter-solutions.com/snippets/122/raw
else
  wget -O patch122.php https://area51.enter-solutions.com/snippets/122/raw
fi
php patch122.php
rm $1../cache/class_index.php

Pour exec (avec un utilisateur qui a les bons droits) :

./patch122.sh /chemin/admin/prestashop/

en remplaçant l'argument "/chemin/admin/prestashop/" par le chemin complet vers votre dossier admin (n'oubliez pas le "/" à la fin).

Et normalement c'est good :) 

Edited by llbbay (see edit history)
Link to comment
Share on other sites

Attention j'en ai fait les frais @Eolia me comprendra. On arrive a faire des truc avec les mauvais uid avec cette methode ce qui pollue ton cache que prestashop ne peux plus écraser. Penser au chown !

Sinon encore plus simple en shell (depuis l'adimin dir):

wget -O patch122.php https://area51.enter-solutions.com/snippets/122/raw
php -q patch122.php
chown -R ../override *.php --reference=.
rm ../cache/class_index.php

PS: si en lisant il vous semble ne pas tout comprendre, merci d'ignorer ce message

 

Edited by doekia (see edit history)
Link to comment
Share on other sites

Merci pour ce café d'autant que quand je regarde le nombre de merci et/ou café par rapport au nombre de vues/downloads ... ça donne un effet étrange.

A l'heure qu'il est plus de 4000 lectures des topics, plus de 500 téléchargements sur area51 et moins d'une main de de café... pas que j'en dépende ou en attende plus, mais je pense que c'est représentatif du délabrement de cette communauté. Sans même parler des sabotages de certains acteurs de la team (oui je parle de toi @ttoine) , il va falloir combien de semaine/mois/années pour que PS acte quelque chose concernant ce problème.

Pour info 3h après nos solutions @Eolia et moi même, thirtybees avait déjà réagit.

Link to comment
Share on other sites

10 minutes ago, yama said:

Visiblement Prestashop vient de faire un module recaptcha.... a 39 balles.

Pourquoi ne pas l’avoir intégre dans la solution de base... 😕 

 

13e8fe7fac99cf0544ce1c81524e7a39.md.jpg

 

Chez moi sa fonctionne gratuitement comme sa:
https://www.arnaud-merigeau.fr/add-recaptcha-to-prestashop/

Après je sais pas si c'est de sa que tu parle :)
il donne le module la dans le tuto
https://www.arnaud-merigeau.fr/wp-content/uploads/2016/09/eicaptcha.zip

 

Edited by TonyFREOUR (see edit history)
  • Like 1
Link to comment
Share on other sites

hello 

J'ai reussi 'à l'implémenter sur une boutique mais sur les 2 autres j'ai une erreur 500... 

Je mets le code dans le dossier classe directement et pas dans l'override, alors je comprend pas.... 

 

merci pour votre réponse

Link to comment
Share on other sites

1 minute ago, Eolia said:

Vu que j'en ai assez de me répéter, vous allez bien lire les précédents posts et répondre à cette question: Que fait-on en cas d'erreur 500 ?

Ok je vais regarder, mais ce que je comprend pas, c'est que je n'ai pas activer l'override dans ce cas... 

Link to comment
Share on other sites

Bonjour à tous,

Déjà un énorme merci à @doekia et à @Eolia pour le travail que vous faîtes ici !!!!!! Et puis... quelle patience !

J'ai appliqué les correctifs (notamment sur le fichier classes/customer.php et classes/validate.php car si j'ai bien compris, c'est à faire soit comme ça soit sur l'override) et ça a l'air de fonctionner puisque je n'ai plus de création client étrange sur le BO de notre presta. Donc c'est parfait ^^

Mais...(ya toujours un P*** de "mais" 😂), ya un truc étrange qui se passe, c'est que j'ai de nouvelles inscriptions dans ma base de mailing SendInblue (je le vois sur l'interface dans mon espace SendInBlue) comme si les bots pouvaient continuer de créer des comptes sauf que l'inscription n'est pas prise en compte dans la base de Presta. On a 3 possibilités de s'inscrire à notre newsletter : via une pop-up, via le formulaire de création de compte et via un bloc newsletter.
Comme ça me remplit les champs Mail (ex : [email protected]), Nom (ex : Marie and Monica waiting) et Prénom(ex : www.cutt.us/RSlmx), j'en déduis que ça se passe du côté du formulaire de création de compte.

Du coup, est-ce que le correctif fonctionne aussi pour ce type de soucis ou bien c'est moi qui ait mal lu/fait quelque chose quelque part? (Pour info, la version de mon presta est 1.6.0.14 )

Merciiiiii

 

Link to comment
Share on other sites

Verifiez le ou les modules qui permettent l'inscription à cette newsletter s'il ont un validate avec isName à remplacer par isCustomerName.

Lorsque vous avez supprimé les faux comptes, les avez-vous également supprimé de vos listes sendinblue ?

  • Like 1
Link to comment
Share on other sites

Just now, Eolia said:

Verifiez le ou les modules qui permettent l'inscription à cette newsletter s'il ont un validate avec isName à remplacer par isCustomerName.

Lorsque vous avez supprimé les faux comptes, les avez-vous également supprimé de vos listes sendinblue ?

Alors, il n'y a pas de validate dans le module....donc ce que je pense faire, c'est passer en revue chacun des fichiers du module et remplacer isName par isCustomerName.
Je vous fais un retour dès que c'est fait 😊

Et sinon, oui j'ai bien supprimé tous les faux compte de nos listes SendInBlue

Link to comment
Share on other sites

1 hour ago, AlexiaG said:

Alors, il n'y a pas de validate dans le module....donc ce que je pense faire, c'est passer en revue chacun des fichiers du module et remplacer isName par isCustomerName.
Je vous fais un retour dès que c'est fait 😊

Et sinon, oui j'ai bien supprimé tous les faux compte de nos listes SendInBlue

Bon...et bien je n'ai aucun isName dans aucun des fichiers... Cependant, je retrouve les mentions 'firstname' et 'lastname' sur un seul fichier.
Je pense qu'il y a quelque chose à faire sur ce fichier mais je ne suis pas sûre de moi.... Je pensais tout simplement remplacer ces mentions par 'isCustomerName'.

Ça vous semble juste?

Link to comment
Share on other sites

Il y a 1 heure, AlexiaG a dit :

Bonjour à tous,

Déjà un énorme merci à @doekia et à @Eolia pour le travail que vous faîtes ici !!!!!! Et puis... quelle patience !

J'ai appliqué les correctifs (notamment sur le fichier classes/customer.php et classes/validate.php car si j'ai bien compris, c'est à faire soit comme ça soit sur l'override) et ça a l'air de fonctionner puisque je n'ai plus de création client étrange sur le BO de notre presta. Donc c'est parfait ^^

Mais...(ya toujours un P*** de "mais" 😂), ya un truc étrange qui se passe, c'est que j'ai de nouvelles inscriptions dans ma base de mailing SendInblue (je le vois sur l'interface dans mon espace SendInBlue) comme si les bots pouvaient continuer de créer des comptes sauf que l'inscription n'est pas prise en compte dans la base de Presta. On a 3 possibilités de s'inscrire à notre newsletter : via une pop-up, via le formulaire de création de compte et via un bloc newsletter.
Comme ça me remplit les champs Mail (ex : [email protected]), Nom (ex : Marie and Monica waiting) et Prénom(ex : www.cutt.us/RSlmx), j'en déduis que ça se passe du côté du formulaire de création de compte.

Du coup, est-ce que le correctif fonctionne aussi pour ce type de soucis ou bien c'est moi qui ait mal lu/fait quelque chose quelque part? (Pour info, la version de mon presta est 1.6.0.14 )

Merciiiiii

 

Oups, je l'avais pas vue celle-la... Merci @AlexiaG. J'utilise également SendinBlue et je viens de supprimer 150 faux clients dont certains créés après la mise en place de la parade de nos amis @doekia et @Eolia.

J'attends le résultat de ta recherche avant d'aller plus loin. 

Merci d'avance

  • Like 1
Link to comment
Share on other sites

il y a 15 minutes, AlexiaG a dit :

Bon...et bien je n'ai aucun isName dans aucun des fichiers... Cependant, je retrouve les mentions 'firstname' et 'lastname' sur un seul fichier.
Je pense qu'il y a quelque chose à faire sur ce fichier mais je ne suis pas sûre de moi.... Je pensais tout simplement remplacer ces mentions par 'isCustomerName'.

Ça vous semble juste?

Non, ce n'est pas la même chose.

Je vais poser la question différemment: Y a t-il sur votre site un endroit où l'on peut s'inscrire avec un nom et un prénom à la newsletter (sans avoir de compte) ?

Si oui quel module ?

Si oui, merci de nous communiquer le fichier php principal du module

  • Like 1
Link to comment
Share on other sites

1 minute ago, Eolia said:

Non, ce n'est pas la même chose.

Je vais poser la question différemment: Y a t-il sur votre site un endroit où l'on peut s'inscrire avec un nom et un prénom à la newsletter (sans avoir de compte) ?

Si oui quel module ?

Si oui, merci de nous communiquer le fichier php principal du module

Non, normalement non et c'est ça que je ne comprends pas...Je n'ai recensé que 3 endroits : le bloc de la newsletter sur la page d'accueil où l'on renseigne juste l'adresse mail, la pop-up (adresse mail et Nom) et le formulaire de création de compte...Je pense que je vais éplucher les différents modules qui ont été installés avant mon arrivée et voir si y'en a pas un qui en serait à l'origine.

Link to comment
Share on other sites

Sur mon site le bloc Newsletter ne permet que la saisie d'une adresse mail. En revanche si on saisie une nouvelle adresse, type pré[email protected] on obtient la création d'un contact dans sendinblue avec les attributs prénom et nom.
La saisie d'une adresse connue par prestashop renvoie un message d'erreur "Newsletter : Cette adresse e-mail est déjà utilisée." mais l'adresse mail dans sendinblue est actualisée.

Je continue à gratter...

Le module newsletter que j'utilise est le Bloc newsletter v2.3.2 . Je dois le mettre à jour

Link to comment
Share on other sites

il y a 33 minutes, Jpc_des_dombes a dit :

Sur mon site le bloc Newsletter ne permet que la saisie d'une adresse mail. En revanche si on saisie une nouvelle adresse, type pré[email protected] on obtient la création d'un contact dans sendinblue avec les attributs prénom et nom.
La saisie d'une adresse connue par prestashop renvoie un message d'erreur "Newsletter : Cette adresse e-mail est déjà utilisée." mais l'adresse mail dans sendinblue est actualisée.

Je continue à gratter...

Le module newsletter que j'utilise est le Bloc newsletter v2.3.2 . Je dois le mettre à jour

Erreur de ma part, sur la première ligne de mon post. La saisie d'une nouvelle adresse ajoute un contact sans nom et prénom dans la liste sendinblue.

Mais je confirme, j'ai bien eu la création d'un contact-spam dans ma liste Sendinblue avec une adresse mail non-présente dans la liste client et newsletter de prestashop.

C'est vraiment une plaie ces spammeurs !!!

2019-04-24_19-04-34.jpg

Link to comment
Share on other sites

Pour ma part sur les 2 boutiques qui vendent uniquement en France j'ai changé dans les préférence>type de processus d'enregistrement>création de compte et adresse.
Et les spams clients ont stoppé, rien depuis lundi.
J'ai donc patché que ma boutique internationale.

Si ça peut aider certains.

Link to comment
Share on other sites

Bonjour

J'ai donc trouvé ce sujet et je remercie les créateurs du patch qui prennent le temps d'aider. J'ai lu le sujet rapidement voir si je trouvais des réponses à mes questions plus bas je n'ai pas vu mais j'ai ptet rater un épisode si c'est le cas veuillez m'excuser

Pour ma part j'ai pas encore appliqué les solutions parce je ne veut pas foncièrement modifier mes boutiques. j'ai juste 3 questions:

 

1) Est ce que cela a un impact sur l'activité de la boutique si on les laisse s'inscrire?

2) Je les supprime à la mano 2/3 fois par jour donc si ça ne dure que quelques jours cette solution me conviendra si ça pose pas de soucis majeurs quels risques ça peut poser?

3) est ce que ca peut durer longtemps ce spam?

 

Link to comment
Share on other sites

19 minutes ago, doekia said:

1/ te blacklister ton mailer

2/ te blacklister ton mailer

3/ Jusqu'a la fin des temps

Merci pour la réponse, le 3 ça j'ai capté

 

En quoi une 15 aine d'inscriptions par jour va blacklister mon mailer, je ne comprends pas? et si on désactive l'envoi du mail d'inscription? 

Link to comment
Share on other sites