doekia Posted April 20, 2019 Share Posted April 20, 2019 (edited) Depuis le 03-MAI-2019, la version 1.6.1.24 intègre ce patch. Si rien ne vous en empêche, Mettez à jour. Si vous continuez car vous ne pouvez pas mettre à jour. Assurez vous d'utiliser un éditeur de source respectueux de l'encodage de caractère. La méthode la plus simple (1.5.4.1+ à 1.7): Un script qui fait ça tout seul https://area51.enter-solutions.com/snippets/122 (1.5.4.1+ à 1.7) Créez une fichier patch122.php dans votre répertoire admin. Copier le contenu ci-dessus dedans. Lancez le patch. https://votre-domaine.tld/votre-bo/patch122.php Pour ceux qui veulent tout faire eux-même 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), Pour les 1.3 et 1.4 c'est ici: Après avoir patché, Supprimez intégrale le compte client - permettez qu'il se réinscrive EDIT: Je ne suis plus ce topic. Pour toute demande d'aide le concernant, merci d'utiliser un ticket support. Edited May 3, 2019 by doekia (see edit history) 7 7 Link to comment Share on other sites More sharing options...
P i l o u Posted April 20, 2019 Share Posted April 20, 2019 Bonjour doekia, Est-ce que l'ajout de ce code protège le site contre des inscriptions de ce genre là stp ? Link to comment Share on other sites More sharing options...
doekia Posted April 20, 2019 Author Share Posted April 20, 2019 Typiquement Link to comment Share on other sites More sharing options...
P i l o u Posted April 20, 2019 Share Posted April 20, 2019 Vu ta réponse dans un autre post, j'en ai déduit que oui. J'ai donc copié les fichiers classes/Validate.php et Customer.php dans le dossier override/classes. J'ai modifié Validate.php class ValidateCore { const ADMIN_PASSWORD_LENGTH = 8; const PASSWORD_LENGTH = 5; public static function isIp2Long($ip) { return preg_match('#^-?[0-9]+$#', (string)$ip); } public static function isAnything() { return true; } /** * Validation des clients par doekia */ 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); } Et Customer.php: public static $definition = array( 'table' => 'customer', 'primary' => 'id_customer', 'fields' => array( 'secure_key' => array('type' => self::TYPE_STRING, 'validate' => 'isMd5', 'copy_post' => false), 'lastname' => array('type' => self::TYPE_STRING, 'validate' => 'isCustomerName', 'required' => true, 'size' => 32), 'firstname' => array('type' => self::TYPE_STRING, 'validate' => 'isCustomerName', 'required' => true, 'size' => 32), J'ai supprimé le fichier cache/class_index.php Puis j'ai rafraichi mon FO mais là, j'ai une page blanche... J'ai mal fait quelque chose mais quoi ? Merci Link to comment Share on other sites More sharing options...
Eolia Posted April 20, 2019 Share Posted April 20, 2019 il faut modifier leur déclaration si vous faites une override... class Customer extends CustomerCore { le code } Link to comment Share on other sites More sharing options...
doekia Posted April 20, 2019 Author Share Posted April 20, 2019 (edited) Si tu n'as pas déjà d'override sur Validate, ... <?php class Validate extends ValidateCore { 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); } } Pour Customer c'est un peu plus compliqué ... plus simple direct dans le code natif Edited April 20, 2019 by doekia (see edit history) Link to comment Share on other sites More sharing options...
sebwvs Posted April 20, 2019 Share Posted April 20, 2019 même problème pour moi depuis hier soir sur plusieurs site... et toujours la même adresse IP pour tous les faux comptes (46.22.220.10) regarder surement la même aussi pour vous... je vais essayer de modifier le Validate.php ... mais je crains qu'ils ne reviennent ensuite avec faux nom et prénom à la place des urls... ne faudrait'il pas un captcha au formulaire de création de compte ? ou alors interdire l’accès au serveur de cette adresse IP via Htacces ? a votre avis ? Link to comment Share on other sites More sharing options...
P i l o u Posted April 20, 2019 Share Posted April 20, 2019 (edited) Doekia, non, je n'ai pas déjà d'override sur Validate.php Je vais faire la modif dans le code plutôt que dans override comme tu le suggères. L'idée du captcha sur le formulaire d'inscription est bien mais comment le mettre en œuvre ? edit: idem page blanche en fo après modification directe des 2 fichiers J'ai édité define.inc.php pour y mettre define('_PS_MODE_DEV_', true) mais pas de message d'erreur... Edited April 20, 2019 by P i l o u (see edit history) Link to comment Share on other sites More sharing options...
doekia Posted April 20, 2019 Author Share Posted April 20, 2019 3 minutes ago, sebwvs said: même problème pour moi depuis hier soir sur plusieurs site... et toujours la même adresse IP pour tous les faux comptes (46.22.220.10) regarder surement la même aussi pour vous... je vais essayer de modifier le Validate.php ... mais je crains qu'ils ne reviennent ensuite avec faux nom et prénom à la place des urls... ne faudrait'il pas un captcha au formulaire de création de compte ? ou alors interdire l’accès au serveur de cette adresse IP via Htacces ? a votre avis ? Pourquoi font-ils se genre de chose si ce n'est pour vous "vendre" des pseudo site porno? Si ils ne peuvent plus mettre leur lien, ils changent de crèmerie. Là le bot va se planter sur les shops protégé, d'ici a ce qu'il ait éclusé le net ça va laisser du temps Link to comment Share on other sites More sharing options...
doekia Posted April 20, 2019 Author Share Posted April 20, 2019 4 minutes ago, P i l o u said: idem page blanche en fo après modification directe des 2 fichiers J'ai édité define.inc.php pour y mettre define('_PS_MODE_DEV_', true) mais pas de message d'erreur... Tu as bien supprimé tes "overrides" ratés? effacé le cache/class_index.php Tu utilises quoi comme éditeur de texte? Link to comment Share on other sites More sharing options...
sebwvs Posted April 20, 2019 Share Posted April 20, 2019 il y a 2 minutes, doekia a dit : Pourquoi font-ils se genre de chose si ce n'est pour vous "vendre" des pseudo site porno? Si ils ne peuvent plus mettre leur lien, ils changent de crèmerie. Là le bot va se planter sur les shops protégé, d'ici a ce qu'il ait éclusé le net ça va laisser du temps pas faux ... 😉 suite au prochaine épisode Link to comment Share on other sites More sharing options...
P i l o u Posted April 20, 2019 Share Posted April 20, 2019 à l’instant, doekia a dit : Tu as bien supprimé tes "overrides" ratés? effacé le cache/class_index.php Tu utilises quoi comme éditeur de texte? Oui et oui et notepad++ Link to comment Share on other sites More sharing options...
doekia Posted April 20, 2019 Author Share Posted April 20, 2019 Double vérifie ta copie... define('_PS_MODE_DEV_', true) il y a bien un ; à la fin Link to comment Share on other sites More sharing options...
passicool Posted April 20, 2019 Share Posted April 20, 2019 Merci pour Doekia pour les modifs. C'est dommage que ce type de protection ne soit pas native après le spam sur le formulaire de contact voilà que c'est par les inscriptions, à chaque mise à jour on doit refaire tout ça et la liste s'allonge avec le temps. 1 Link to comment Share on other sites More sharing options...
planetediscount Posted April 20, 2019 Share Posted April 20, 2019 2 minutes ago, passicool said: Merci pour Doekia pour les modifs. C'est dommage que ce type de protection ne soit pas native après le spam sur le formulaire de contact voilà que c'est par les inscriptions, à chaque mise à jour on doit refaire tout ça et la liste s'allonge avec le temps. et vraiment on a de la chance d'avoir doekia et eolia #hero je patch de suite 1 Link to comment Share on other sites More sharing options...
P i l o u Posted April 20, 2019 Share Posted April 20, 2019 il y a 5 minutes, doekia a dit : Double vérifie ta copie... define('_PS_MODE_DEV_', true) il y a bien un ; à la fin Oui, il y a bien un ; à la fin J'ai modifié comme je l'ai indiqué là : Link to comment Share on other sites More sharing options...
doekia Posted April 20, 2019 Author Share Posted April 20, 2019 Link to comment Share on other sites More sharing options...
Les Bijoux de JADE Posted April 20, 2019 Share Posted April 20, 2019 Bonjour, Je rencontre en effet ce même problème depuis hier ... Link to comment Share on other sites More sharing options...
P i l o u Posted April 20, 2019 Share Posted April 20, 2019 Voilà, c'est fait, tchin Link to comment Share on other sites More sharing options...
doekia Posted April 20, 2019 Author Share Posted April 20, 2019 2 minutes ago, P i l o u said: Oui, il y a bien un ; à la fin J'ai modifié comme je l'ai indiqué là : et pourquoi pas exactement comme marqué ici? Link to comment Share on other sites More sharing options...
P i l o u Posted April 20, 2019 Share Posted April 20, 2019 (edited) Tu as écrit : " soit dans le code original, soit dans une override " J'ai essayé en override, et puis comme ça ne fonctionnait pas, j'ai modifié directement les 2 fichiers dans /classes/ Tu veux un accès ftp ? Edited April 20, 2019 by P i l o u (see edit history) Link to comment Share on other sites More sharing options...
doekia Posted April 20, 2019 Author Share Posted April 20, 2019 Vas-y mais franchement j'ai mes clients à patcher d'abord - le but d'écrire ici c'est que vous soyez autonome Link to comment Share on other sites More sharing options...
P i l o u Posted April 20, 2019 Share Posted April 20, 2019 Oui, je comprends, désolé d'être si nul... Bonne journée, j'espère que ton café t'a plu. Link to comment Share on other sites More sharing options...
sebwvs Posted April 20, 2019 Share Posted April 20, 2019 il y a 7 minutes, P i l o u a dit : Tu as écrit : " soit dans le code original, soit dans une override " J'ai essayé en override, et puis comme ça ne fonctionnait pas, j'ai modifié directement les 2 fichiers dans /classes/ Tu veux un accès ftp ? vérifie si il te manque pas un } à la fin de ton Validate.php ? Link to comment Share on other sites More sharing options...
planetediscount Posted April 20, 2019 Share Posted April 20, 2019 5 minutes ago, P i l o u said: Tu as écrit : " soit dans le code original, soit dans une override " J'ai essayé en override, et puis comme ça ne fonctionnait pas, j'ai modifié directement les 2 fichiers dans /classes/ Tu veux un accès ftp ? Tu dois juste ajouter à la fin du fichier classes/Validate.php avant la dernière } /** * Patch Doekia spam inscription * */ 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); } Ensuite du modifie le fichier classes/Customer.php avec les infos du post 1 de Doekia Link to comment Share on other sites More sharing options...
Choupas83 Posted April 20, 2019 Share Posted April 20, 2019 Bonjour, Je rencontre le même problème sur tous les prestashop en version 1.6 J'ai appliqué le correctif, cela semble fonctionner pour le moment Merci beaucoup Doekia Link to comment Share on other sites More sharing options...
doekia Posted April 20, 2019 Author Share Posted April 20, 2019 En 1.7, 1.5 c'est pareil, j'ai pas de cas en 1.4 mais les formulaires de ceux-ci sont tellement custom que ceci explique peut-être cela. Au vues du code ça doit être toutes versions Link to comment Share on other sites More sharing options...
P i l o u Posted April 20, 2019 Share Posted April 20, 2019 il y a 10 minutes, planetediscount a dit : Tu dois juste ajouter à la fin du fichier classes/Validate.php avant la dernière } /** * Patch Doekia spam inscription * */ 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); } En faisant ce que tu écris, j'ai un message d'erreur en fo : Parse error: syntax error, unexpected 'function' (T_STRING), expecting variable (T_VARIABLE) in /home/www/*****/classes/Validate.php on line 1106 Link to comment Share on other sites More sharing options...
sebwvs Posted April 20, 2019 Share Posted April 20, 2019 (edited) il y a 2 minutes, P i l o u a dit : En faisant ce que tu écris, j'ai un message d'erreur en fo : Parse error: syntax error, unexpected 'function' (T_STRING), expecting variable (T_VARIABLE) in /home/www/*****/classes/Validate.php on line 1106 vérifie si il te manque pas un } à la fin de ton Validate.php ? colle : juste avant la dernier } 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); } Edited April 20, 2019 by sebwvs (see edit history) Link to comment Share on other sites More sharing options...
doekia Posted April 20, 2019 Author Share Posted April 20, 2019 public static function<feff> isCustomerName($name) il semble que le forum rajoute de la merde quand vous copiez ici un caractère BOM Link to comment Share on other sites More sharing options...
doekia Posted April 20, 2019 Author Share Posted April 20, 2019 (edited) Le forum ajoute des BOM en copiant collant public static function<feff> isCustomerName($name) 'lastname' => array('<feff>type' => self::TYPE_ST<feff>RING, 'validate' => 'i<feff>sCustomerName', 'required' => true, 'size'<feff> => 32)<feff><feff>, Edited April 20, 2019 by doekia (see edit history) Link to comment Share on other sites More sharing options...
P i l o u Posted April 20, 2019 Share Posted April 20, 2019 Voilà mon Validate.php Je ne vois pas où je fais une erreur, mais j'avoue être une bille en php.. Validate.php Link to comment Share on other sites More sharing options...
doekia Posted April 20, 2019 Author Share Posted April 20, 2019 Tu as un caractère parasite ici public static function<feff> isCustomerName($name) Link to comment Share on other sites More sharing options...
P i l o u Posted April 20, 2019 Share Posted April 20, 2019 J'ai écris tout le code à la main (pas de copié collé) Parse error: syntax error, unexpected '' (T_STRING) in /home/www/******/classes/Validate.php on line 1112 Voilà ma ligne 1112 : return preg_match(Tools::cleanNonUnicodeSupport (' /^[^0-9 !\[\]<>,;?=+()@#"°{}_$%:\/\\\*\^]*$/u'), $name) ; Link to comment Share on other sites More sharing options...
sakiri Posted April 20, 2019 Share Posted April 20, 2019 Bonjour, Comment ça marche dans PS 1.5.5? Merci Link to comment Share on other sites More sharing options...
P i l o u Posted April 20, 2019 Share Posted April 20, 2019 Voilà, j'ai trouvé : en choisissant "Encoder en ANSI" dans Notepad++, j'ai enfin pu voir les caractères bizarres. Merci Link to comment Share on other sites More sharing options...
doekia Posted April 20, 2019 Author Share Posted April 20, 2019 9 minutes ago, sakiri said: Bonjour, Comment ça marche dans PS 1.5.5? Merci Absolument pareil Link to comment Share on other sites More sharing options...
yan Posted April 20, 2019 Share Posted April 20, 2019 D'abord un grand merci ! J'ai appliqué les modifs, on va voir ce que ça donne, c'est des vagues toutes les 1 ou 2 heures Par contre un effet de bord : Quand on va dans le b.o. pour supprimer les client pourris, il met un message d'erreur : Property Customer->lastname is not valid et impossible de supprimer. Mais c'est un moindre mal... Link to comment Share on other sites More sharing options...
doekia Posted April 20, 2019 Author Share Posted April 20, 2019 Link to comment Share on other sites More sharing options...
doekia Posted April 20, 2019 Author Share Posted April 20, 2019 La même chose s'applique au 1.4 et 1.3 Il faut seulement adapter cette section dans Customer.php protected $fieldsValidate = array('secure_key' => 'isMd5', 'lastname' => 'isName', 'firstname' => 'isName', 'email' => 'isEmail', 'passwd' => 'isPasswd', 'id_gender' => 'isUnsignedId', 'birthday' => 'isBirthDate', 'newsletter' => 'isBool', 'optin' => 'isBool', 'active' => 'isBool', 'note' => 'isCleanHtml', 'is_guest' => 'isBool'); protected $exclude_copy_post = array('secure_key', 'active', 'date_add', 'date_upd', 'last_passwd_gen', 'newsletter_date_add', 'id_default_group', 'ip_registration_newsletter', 'note', 'is_guest', 'deleted'); en protected $fieldsValidate = array('secure_key' => 'isMd5', 'lastname' => 'isCustomerName', 'firstname' => 'isCustomerName', 'email' => 'isEmail', 'passwd' => 'isPasswd', 'id_gender' => 'isUnsignedId', 'birthday' => 'isBirthDate', 'newsletter' => 'isBool', 'optin' => 'isBool', 'active' => 'isBool', 'note' => 'isCleanHtml', 'is_guest' => 'isBool'); protected $exclude_copy_post = array('secure_key', 'active', 'date_add', 'date_upd', 'last_passwd_gen', 'newsletter_date_add', 'id_default_group', 'ip_registration_newsletter', 'note', 'is_guest', 'deleted'); La modif dans Validate.php est quasi identique: public static function isCustomerName($name) { if (preg_match('/www|http/ui',$name)) { return false; } return preg_match('/^[^0-9!\[\]<>,;?=+()@#"°{}_$%:\/\\\*\^]*$/u', $name); } 2 2 Link to comment Share on other sites More sharing options...
Ritaiko Posted April 20, 2019 Share Posted April 20, 2019 (edited) 5 hours ago, planetediscount said: Tu dois juste ajouter à la fin du fichier classes/Validate.php avant la dernière } /** * Patch Doekia spam inscription * */ 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); } Ensuite du modifie le fichier classes/Customer.php avec les infos du post 1 de Doekia Bonjour, Je suis sur 1.6. J'ai tout fait comme indiqué: J'ai modifié les deux fichiers dans classes/. En faisant bien attention aux }. Page blanche en actualisant mon FO. Alors j'ai copié les fichiers dans override/classes en ajoutant le entends CustomerCore et ValidateCore. J'ai bien supprimé le fichier cache/class_index.php Toujours page blanche en actualisant mon FO. Une idée du souci ? Edited April 20, 2019 by Ritaiko (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted April 20, 2019 Share Posted April 20, 2019 A partir de la version 1.5, comme toujours en cas d'erreur 500 et pour en savoir plus, il faut modifier cette ligne au début du fichier config/defines.inc.php sur votre ftp : define('_PS_MODE_DEV_', false); en remplaçant false par true, ce qui donne: define('_PS_MODE_DEV_', true); Et donnez-nous l'erreur après avoir enregistré le fichier et rafraîchi la page Link to comment Share on other sites More sharing options...
sakiri Posted April 20, 2019 Share Posted April 20, 2019 5 hours ago, doekia said: Absolument pareil Je n'ai pas réussi à l'implémenter comme un override, mais avec le changement des fichiers originales, tout fonctionne pour moi. Merci beaucoup! Link to comment Share on other sites More sharing options...
doekia Posted April 20, 2019 Author Share Posted April 20, 2019 Comme expliqué 5 post plus haut vous avez sûrment des caractères invalide a cause du copié/collé. Juste pour être sur, parce que certain se mélangent avec des overrides si vous optez pour cette approche ça donne: override/classes/Customer.php <?php class Customer extends CustomerCore { /** * @see ObjectModel::$definition */ public static $definition = array( 'table' => 'customer', 'primary' => 'id_customer', 'fields' => array( 'secure_key' => array('type' => self::TYPE_STRING, 'validate' => 'isMd5', 'copy_post' => false), 'lastname' => array('type' => self::TYPE_STRING, 'validate' => 'isCustomerName', 'required' => true, 'size' => 32), 'firstname' => array('type' => self::TYPE_STRING, 'validate' => 'isCustomerName', 'required' => true, 'size' => 32), 'email' => array('type' => self::TYPE_STRING, 'validate' => 'isEmail', 'required' => true, 'size' => 128), 'passwd' => array('type' => self::TYPE_STRING, 'validate' => 'isPasswd', 'required' => true, 'size' => 32), 'last_passwd_gen' => array('type' => self::TYPE_STRING, 'copy_post' => false), 'id_gender' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId'), 'birthday' => array('type' => self::TYPE_DATE, 'validate' => 'isBirthDate'), 'newsletter' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool'), 'newsletter_date_add' => array('type' => self::TYPE_DATE,'copy_post' => false), 'ip_registration_newsletter' => array('type' => self::TYPE_STRING, 'copy_post' => false), 'optin' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool'), 'website' => array('type' => self::TYPE_STRING, 'validate' => 'isUrl'), 'company' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'), 'siret' => array('type' => self::TYPE_STRING, 'validate' => 'isSiret'), 'ape' => array('type' => self::TYPE_STRING, 'validate' => 'isApe'), 'outstanding_allow_amount' => array('type' => self::TYPE_FLOAT, 'validate' => 'isFloat', 'copy_post' => false), 'show_public_prices' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false), 'id_risk' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt', 'copy_post' => false), 'max_payment_days' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt', 'copy_post' => false), 'active' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false), 'deleted' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false), 'note' => array('type' => self::TYPE_HTML, 'validate' => 'isCleanHtml', 'size' => 65000, 'copy_post' => false), 'is_guest' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false), 'id_shop' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'copy_post' => false), 'id_shop_group' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'copy_post' => false), 'id_default_group' => array('type' => self::TYPE_INT, 'copy_post' => false), 'id_lang' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'copy_post' => false), 'date_add' => array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'copy_post' => false), 'date_upd' => array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'copy_post' => false), ), ); } override/classes/Validate.php <?php class Validate extends ValidateCore { 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); } } Assurez vous d'utiliser un éditeur source digne de ce nom (notepad++ en mode ansi, vi avec :se list, ...) Supprimez cache/class_index.php Link to comment Share on other sites More sharing options...
Mediacom87 Posted April 20, 2019 Share Posted April 20, 2019 (edited) Coucou, bon, je me penche dessus avant l'apéro et là petite erreur : Parse error: syntax error, unexpected 'return' (T_RETURN) in /home/www/override/classes/Validate.php on line 24 et la ligne 24 c'est : return preg_match(Tools::cleanNonUnicodeSupport('/^[^0-9!\[\]<>,;?=+()@#"°{}_$%:\/\\\*\^]*$/u'), $name); pourtant j'ais pas d'erreur apparente sur le code class Validate extends ValidateCore { 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); } } Corrigé avec ce code ????? class Validate extends ValidateCore { 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); } } Edited April 20, 2019 by Mediacom87 (see edit history) Link to comment Share on other sites More sharing options...
doekia Posted April 20, 2019 Author Share Posted April 20, 2019 ligne 24? sur un fichier qui en contient 11? Tu as déjà du trop attaquer l'apéro alors Link to comment Share on other sites More sharing options...
Eolia Posted April 20, 2019 Share Posted April 20, 2019 Ben s'il n'attends pas return, c'est que l'erreur est à la ligne précédente, donc vérifiez qu'il n'y ait pas de bom Link to comment Share on other sites More sharing options...
planetediscount Posted April 20, 2019 Share Posted April 20, 2019 (edited) Les BOM auront été plus ch**** que les spammers aujourd'hui Edited April 20, 2019 by planetediscount orthographe (see edit history) Link to comment Share on other sites More sharing options...
Mediacom87 Posted April 20, 2019 Share Posted April 20, 2019 tout à fait BOM BOM BOM Link to comment Share on other sites More sharing options...
Eolia Posted April 20, 2019 Share Posted April 20, 2019 Le forum n'aime pas @doekia et rajoute des BOM partout dans ses codes (Ou alors il serait passé sous Windows avec Wordpad ? Je n'ose pas y croire 😲 ) Link to comment Share on other sites More sharing options...
Eolia Posted April 20, 2019 Share Posted April 20, 2019 En pastebin: override Customer: http://eolia.o2switch.net/pastebin/?69c6ac7e6cb2e339#sgNW1zoHsTG3vTd4Up7WDtJZpLCcxbHjHIu/BYi2BAA= override Validate: http://eolia.o2switch.net/pastebin/?48e331d37c1d057d#bYBL0TZwMnkj5d8m8r5Dcsjw3EnFB34n7xvGFOI7CrI= et les zip en pièces-jointes^^ Validate.php Customer.php 1 Link to comment Share on other sites More sharing options...
doekia Posted April 20, 2019 Author Share Posted April 20, 2019 Moi je copie direct depuis vi J'ai plus l'impression que c'est des parasites dû à la colorisation de syntaxe. En tout cas si quelqu'un (révons) de la team pouvait regarder ce problème sur le copier coller du code ça serait bien car si on ne peux plus partager de code sans s'exposer à l'ire de ceux auquel est destiné ce code, j'arrête immédiatement. Link to comment Share on other sites More sharing options...
doekia Posted April 20, 2019 Author Share Posted April 20, 2019 http://area51.enter-solutions.com/snippets/122 Link to comment Share on other sites More sharing options...
afd67 Posted April 20, 2019 Share Posted April 20, 2019 (edited) Merci @doekia , code changé, ça fonctionne ! attention nettoyer le fichier des caractères parasite dans Notepad++ en allant sur Encodage et cocher Encoder en ANSI les caractères en trop vont apparaitre ! les supprimer . Dom. Edited April 20, 2019 by afd67 (see edit history) Link to comment Share on other sites More sharing options...
artistik Posted April 20, 2019 Share Posted April 20, 2019 Hello Merci pour les réponses, j'ai passé la journée à me tourmenter dessus ; j'ai un pote qui vient de passer on vient de capter à quoi servait ces inscriptions toutes pourries et j'ai installé le captcha sur l'inscription inutile. Je savais plus par quel moyen m'en sortir, quand je continue encore et toujours mes recherches sur google et bingo, j'arrive ici, donc MERCI Pour en revenir a nos moutons, je suis relativement une bille pour ce genre de modifs qui me paraisse un peu complexe... J'aimerai éviter une page blanche en FO et une crise cardiaque en BO :-) Donc je suis un peu perdu sur l'override ou autre, de mémoire mon site ne l'utilise plus.. Je pense modifier les fichiers coeurs, Est ce que c'est possible d'avoir la solution pas à pas guidée exacte pour que je puisse essayer. Je suis assez effrayé de tout ca car mes sites c'est mes bébés que je controle pas suffisament bien donc merci à vous si c'est possible de réécrire la solution pour les débutants comme je suis :) (enfin pas expert) Link to comment Share on other sites More sharing options...
doekia Posted April 20, 2019 Author Share Posted April 20, 2019 Heu le patch sur area51 est exactement ça Link to comment Share on other sites More sharing options...
artistik Posted April 21, 2019 Share Posted April 21, 2019 7 hours ago, doekia said: Heu le patch sur area51 est exactement ça merci Doekia. donc je prend le patch sur area51. Patch.php je l’upload à la racine de mon site ou de mes sites ? Car plusieurs sont touchés . Et ensuite je lance www.monsite.fr/patch.php ? Link to comment Share on other sites More sharing options...
Fab20620 Posted April 21, 2019 Share Posted April 21, 2019 Chez moi le patch n'a pas créé les fichiers (il est noté d'utiliser le patch dans le dossier admin), j'ai les messages de création des override mais les fichiers n'y sont pas. Du coup j'ai tenté l'override en manuel mais l'override de Validate me génère une page blanche, du coup j'ai modifié les fichiers originaux et ça marche. Link to comment Share on other sites More sharing options...
artistik Posted April 21, 2019 Share Posted April 21, 2019 5 minutes ago, Fab20620 said: Chez moi le patch n'a pas créé les fichiers (il est noté d'utiliser le patch dans le dossier admin), j'ai les messages de création des override mais les fichiers n'y sont pas. Du coup j'ai tenté l'override en manuel mais l'override de Validate me génère une page blanche, du coup j'ai modifié les fichiers originaux et ça marche. Salut Fab20620 Est ce que tu peux m'envoyer le code stp que tu as insérer dans les fichiers et qui ne crée pas de probleme? Je pense faire pareil, implémenter directement dans le coeur plutot que l'override, merci Link to comment Share on other sites More sharing options...
artistik Posted April 21, 2019 Share Posted April 21, 2019 23 hours ago, 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 https://area51.enter-solutions.com/snippets/122 c'est quoi le probleme dans ce cas la, les Boom dont vous parlez ? merci Link to comment Share on other sites More sharing options...
Fab20620 Posted April 21, 2019 Share Posted April 21, 2019 1 minute ago, artistik said: J'ai utilisé exactement ce code là. pas de souci de caractères parasite chez moi. Link to comment Share on other sites More sharing options...
artistik Posted April 21, 2019 Share Posted April 21, 2019 (edited) Cool Merci FAb20620 pour validate.php ou as tu insérer le code, à la fin? Je vais tenter le coup d'ici quelques heures... En attendant, j'essaie de voir si je bloque l'ip mentionné dans le forum si ca va deja faire son effet : 46.22.220.10 Edited April 21, 2019 by artistik (see edit history) Link to comment Share on other sites More sharing options...
Jpc_des_dombes Posted April 21, 2019 Share Posted April 21, 2019 Ok chez moi, ça fonctionne. Merci, merci et encore merci ! Bonne chasse aux œufs à tous Link to comment Share on other sites More sharing options...
Fab20620 Posted April 21, 2019 Share Posted April 21, 2019 2 minutes ago, artistik said: Cool Merci FAb20620 Je vais tenter le coup d'ici quelques heures... En attendant, j'essaie de voir si je bloque l'ip mentionné dans le forum si ca va deja faire son effet : 46.22.220.10 Ce matin j'ai l'ip 46.22.220.49, c'est pour ça que j'ai appliqué ces patchs, si on va se taper une tonne d'IP différentes ça va être chaud 🙂 Link to comment Share on other sites More sharing options...
Eolia Posted April 21, 2019 Share Posted April 21, 2019 C'est pas pour rien qu'on a écrit ces patchs... Il vaut mieux raisonner à long terme et pouvoir s'occuper d'autre chose plutôt que de passer son temps à surveiller et bloquer des IP. Mais chacun fait comme il veut Link to comment Share on other sites More sharing options...
Fab20620 Posted April 21, 2019 Share Posted April 21, 2019 5 minutes ago, Eolia said: C'est pas pour rien qu'on a écrit ces patchs... Il vaut mieux raisonner à long terme et pouvoir s'occuper d'autre chose plutôt que de passer son temps à surveiller et bloquer des IP. Mais chacun fait comme il veut Oui tu as mille fois raison. Merci pour cette solution et pour la réactivité 🙂 Link to comment Share on other sites More sharing options...
SOURIRE DES SAVEURS Posted April 21, 2019 Share Posted April 21, 2019 Bonjour, j'ai pour ma part bloqué l'adresse IP 46.22.220.10 depuis mon cpanel Pourquoi préférez-vous coder au risque d'erreur ? puisque vous savez depuis quelle adresse IP proviennent ces fausses inscriptions ? Merci Link to comment Share on other sites More sharing options...
Advisuel Posted April 21, 2019 Share Posted April 21, 2019 MERCI !!!! Link to comment Share on other sites More sharing options...
Eolia Posted April 21, 2019 Share Posted April 21, 2019 il y a 3 minutes, SOURIRE DES SAVEURS a dit : Bonjour, j'ai pour ma part bloqué l'adresse IP 46.22.220.10 depuis mon cpanel Pourquoi préférez-vous coder au risque d'erreur ? puisque vous savez depuis quelle adresse IP proviennent ces fausses inscriptions ? Merci Parce que les IP changent^^ Les seules erreurs que cela peut engendrer ne seraient dues qu'à une mauvaise installation du code. Link to comment Share on other sites More sharing options...
SOURIRE DES SAVEURS Posted April 21, 2019 Share Posted April 21, 2019 Je viens de voir la réponse à ma question, l'adresse IP, a changée ce matin. J'ai bloqué une plage d'adresse ip de 46.22.220.00 à 46.22.220.99 qu'en pensez-vous ? Merci Link to comment Share on other sites More sharing options...
P i l o u Posted April 21, 2019 Share Posted April 21, 2019 il y a 5 minutes, SOURIRE DES SAVEURS a dit : qu'en pensez-vous ? que ça ne sert à rien de bloquer une adresse ip ou même une plage d'adresses ip Tu dois faire la modification du code comme eolia l'a écrit : https://www.prestashop.com/forums/topic/981158-securite-validation-des-clients-13-17/?tab=comments#comment-3100845 Link to comment Share on other sites More sharing options...
artistik Posted April 21, 2019 Share Posted April 21, 2019 @SOURIRE DES SAVEURS C'est ce qui a été invoqué par Eolia, Les IP changent, Ca ne sert pas a grand chose de bloquer une IP en conséquence, il vaut mieux appliquer le correctif direct pour éviter le spam d'inscription Link to comment Share on other sites More sharing options...
SOURIRE DES SAVEURS Posted April 21, 2019 Share Posted April 21, 2019 merci, si on fait des mises à jours de prestashop, le code modifié restera ou pas ? un captcha ne sert à rien dans ces cas là ? n'y a t'il pas un module qui appliquerait ce correctif ? merci Link to comment Share on other sites More sharing options...
doekia Posted April 21, 2019 Author Share Posted April 21, 2019 1 hour ago, artistik said: merci Doekia. donc je prend le patch sur area51. Patch.php je l’upload à la racine de mon site ou de mes sites ? Car plusieurs sont touchés . Et ensuite je lance www.monsite.fr/patch.php ? Presque, le fichier doit être déposé dans ton répertoire admin Link to comment Share on other sites More sharing options...
Recommended Posts