Jump to content

Recommended Posts

Posted (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

 

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.

 

Edited by doekia
  • Like 6
  • Thanks 7

Share this post


Link to post
Share on other sites

Bonjour doekia,

Est-ce que l'ajout de ce code protège le site contre des inscriptions de ce genre là stp ?

image.thumb.png.63c399b651a194eb18833f9f16756f77.png

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

il faut modifier leur déclaration si vous faites une override...

class Customer extends CustomerCore {

le code

 

}

Share this post


Link to post
Share on other sites
Posted (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 by doekia

Share this post


Link to post
Share on other sites

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 ?

 

Share this post


Link to post
Share on other sites
Posted (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 by P i l o u

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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?

Share this post


Link to post
Share on other sites
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 

Share this post


Link to post
Share on other sites
à 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++

Share this post


Link to post
Share on other sites

Double vérifie ta copie...

define('_PS_MODE_DEV_', true)

il y a bien un ; à la fin

 

Share this post


Link to post
Share on other sites

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.

  • Like 1

Share this post


Link to post
Share on other sites
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

  • Like 1

Share this post


Link to post
Share on other sites
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à :

 

Share this post


Link to post
Share on other sites
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?

 

Share this post


Link to post
Share on other sites
Posted (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 by P i l o u

Share this post


Link to post
Share on other sites

Vas-y mais franchement j'ai mes clients à patcher d'abord - le but d'écrire ici c'est que vous soyez autonome

Share this post


Link to post
Share on other sites

Oui, je comprends, désolé d'être si nul...

Bonne journée, j'espère que ton café t'a plu.

Share this post


Link to post
Share on other sites
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  ?

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites
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

 

Share this post


Link to post
Share on other sites
Posted (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 by sebwvs

Share this post


Link to post
Share on other sites

public static function<feff> isCustomerName($name)

 

il semble que le forum rajoute de la merde quand vous copiez

ici un caractère BOM

Share this post


Link to post
Share on other sites
Posted (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 by doekia

Share this post


Link to post
Share on other sites

Voilà mon Validate.php

Je ne vois pas où je fais une erreur, mais j'avoue être une bille en php..

Validate.php

Share this post


Link to post
Share on other sites

Tu as un caractère parasite ici

public static function<feff> isCustomerName($name)

 

 

Share this post


Link to post
Share on other sites

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) ;

Share this post


Link to post
Share on other sites

Bonjour,

Comment ça marche dans PS 1.5.5?

Merci

Share this post


Link to post
Share on other sites

Voilà, j'ai trouvé : en choisissant "Encoder en ANSI" dans Notepad++, j'ai enfin pu voir les caractères bizarres.

Merci :)

Share this post


Link to post
Share on other sites
9 minutes ago, sakiri said:

Bonjour,

Comment ça marche dans PS 1.5.5?

Merci

Absolument pareil

Share this post


Link to post
Share on other sites

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...

Share this post


Link to post
Share on other sites

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);
    }

 

  • Like 2
  • Thanks 2

Share this post


Link to post
Share on other sites
Posted (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 by Ritaiko

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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!

Share this post


Link to post
Share on other sites

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

 

 

Share this post


Link to post
Share on other sites
Posted (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 by Mediacom87

Share this post


Link to post
Share on other sites

ligne 24? sur un fichier qui en contient 11? Tu as déjà du trop attaquer l'apéro alors

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Posted (edited)

Les BOM auront été plus ch**** que les spammers aujourd'hui

Edited by planetediscount
orthographe

Share this post


Link to post
Share on other sites

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 😲 )

Share this post


Link to post
Share on other sites

Moi je copie direct depuis vi :D

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.

Share this post


Link to post
Share on other sites
Posted (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 by afd67

Share this post


Link to post
Share on other sites

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)

Share this post


Link to post
Share on other sites

Heu le patch sur area51 est exactement ça

Share this post


Link to post
Share on other sites
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

 

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
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 

Share this post


Link to post
Share on other sites
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

 

Buy Me a Coffee at ko-fi.com

c'est quoi le probleme dans ce cas la, les Boom dont vous parlez ? 

merci

Share this post


Link to post
Share on other sites
1 minute ago, artistik said:

J'ai utilisé exactement ce code là. pas de souci de caractères parasite chez moi.

 

Share this post


Link to post
Share on other sites
Posted (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 by artistik

Share this post


Link to post
Share on other sites
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 🙂

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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é 🙂

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

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 ?

image.thumb.png.78e63f42508712dbd0541e3908a837cf.png

Merci

Share this post


Link to post
Share on other sites

@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

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites

L'avant-dernière attaque changeait d'IP chaque seconde par rafales de 10 connexions et en passant par des VPN alors vos blocages d'IP me font penser à une protection genre couvercle de poubelle contre attaque nucléaire.

Mais je me répète: vous faites comme vous voulez si notre solution ne vous convient pas^^

Share this post


Link to post
Share on other sites
Just now, SOURIRE DES SAVEURS said:

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

les override persistent entre les versions donc ce sera toujours là et opérationnel

Share this post


Link to post
Share on other sites
Il y a 13 heures, Eolia a dit :

pour faire les modifs, je dois remplacer les 2 fichiers validate et customer et c'est tout ? merci, mais j'ai toujours peur de faire une bêtise.

Share this post


Link to post
Share on other sites

@SOURIRE DES SAVEURS aime bien discuter le bout de gras on dirait... Merci d'ouvrir votre propre post au café du commerce plutôt que de délayer celui-ci dans des directions inutiles.

Share this post


Link to post
Share on other sites
1 minute ago, doekia said:

Presque, le fichier doit être déposé dans ton répertoire admin

yes Merci Doekia ! 

Bon ca redirige sur quoi du quoi un virus ou du porno? 

On voulait regarder hier avec mon pote en cliquant sur le lien via un navigateur sécurisé pour éviter de se faire infecter... 

Share this post


Link to post
Share on other sites
il y a 3 minutes, Eolia a dit :

@SOURIRE DES SAVEURS aime bien discuter le bout de gras on dirait... Merci d'ouvrir votre propre post au café du commerce plutôt que de délayer celui-ci dans des directions inutiles.

pas du tout, je ne suis juste pas experte et avant de risquer de tout planter je me renseigne

Share this post


Link to post
Share on other sites

Alors pourquoi parler des IP ?

Ce post concerne un patch de sécurité. Soit vous modifiez les 2 classes existantes (si vous n'envisagez pas de mettre à jour votre version), soit vous installez les 2 overrides.

Il n'y a rien de plus à dire/faire.

Share this post


Link to post
Share on other sites
il y a 2 minutes, Eolia a dit :

Alors pourquoi parler des IP ?

Ce post concerne un patch de sécurité. Soit vous modifiez les 2 classes existantes (si vous n'envisagez pas de mettre à jour votre version), soit vous installez les 2 overrides.

Il n'y a rien de plus à dire/faire.

vous croyez peut être que nous comprenons tout aussi simplement que vous le comprenez, mais ce n'est pas le cas.

Si je suis sur le forum, c'est que j'ai besoin de votre aide, car je n'ai pas votre savoir.

J'ai téléchargé les fichiers Validate.php et Customer.php, mais je ne sais pas ce que je dois en faire ?

Remplacer les miens par cela ou modifier les miens à partir de ces fichiers.

Je ne comprends pas non plus si j'ai autre chose à faire.

Je ne sais pas si je dois tout simplement déposé ces 2 fichiers dans un autre dossier ? le override ?

image.png.dcfc9915e05a5ccdc655bcd64c497f5b.png

merci de votre aide

Share this post


Link to post
Share on other sites
Posted (edited)

Alors pour ceux qui s'en sentent capables et veulent le faire à la main:

Ouvrez le répertoire /override/classes/:

- Si aucun des 2 fichiers n'est présent (Validate.php et Customer.php) mettez-les dans ce répertoire puis effacez le fichier à la racine du site: /cache/class_index.php et c'est tout.

- Si l'un des 2 ou les 2 sont présents il faut les ouvrir pour voir quelles fonctions ont déjà été modifiées ou ajoutées:

     - Si aucune n'est concernée, il faut ajouter les blocs comme expliqué au post n° 1 et c'est tout

     - Si l'une des fonctions existe déjà, il faut merger le code (faire un mix intelligent du code existant et de celui à ajouter). Là c'est plus complexe et si vous n'y connaissez rien il est préférable de demander l'aide d'un professionnel.

Edited by Eolia
  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
11 minutes ago, SOURIRE DES SAVEURS said:

vous croyez peut être que nous comprenons tout aussi simplement que vous le comprenez, mais ce n'est pas le cas.

Si je suis sur le forum, c'est que j'ai besoin de votre aide, car je n'ai pas votre savoir.

J'ai téléchargé les fichiers Validate.php et Customer.php, mais je ne sais pas ce que je dois en faire ?

Remplacer les miens par cela ou modifier les miens à partir de ces fichiers.

Je ne comprends pas non plus si j'ai autre chose à faire.

Je ne sais pas si je dois tout simplement déposé ces 2 fichiers dans un autre dossier ? le override ?

image.png.dcfc9915e05a5ccdc655bcd64c497f5b.png

merci de votre aide

Franchement quand on ne sait pas, on commence par lire avec toute l'attention nécessaire le topic.

Mon post initial répond à toutes ces questions. Au lieu de te précipiter prend le temps de le lire, tu verra ça ira mieux

Share this post


Link to post
Share on other sites
il y a 5 minutes, doekia a dit :

Franchement quand on ne sait pas, on commence par lire avec toute l'attention nécessaire le topic.

Mon post initial répond à toutes ces questions. Au lieu de te précipiter prend le temps de le lire, tu verra ça ira mieux

 

il y a 7 minutes, Eolia a dit :

Alors pour ceux qui s'en sentent capables et veulent le faire à la main:

Ouvrez le répertoire /override/classes:

- Si aucun des 2 fichiers n'est présent (Validate.php et Customer.php) mettez-les dans ce répertoire puis effacez le fichier /cache/class_index.php et c'est tout.

- Si l'un des 2 ou les 2 sont présents il faut les ouvrir pour voir quelles fonctions ont déjà été modifiées ou ajoutées:

     - Si aucune n'est concernée, il faut ajouter les blocs comme expliqué au post n° 1 et c'est tout

     - Si l'une des fonctions existe déjà, il faut merger le code (faire un mix intelligent du code existant et de celui à ajouter). Là c'est plus complexe et si vous n'y connaissez rien il est préférable de demander l'aide d'un professionnel.

Merci, je me mélanger car en lisant, il était écrit de le mettre dans le dossier admin, mais il n'y a pas de override dans le dossier admin.

Je n'ai pas de fichiers validate et customer dans override/classes , du coup, je vais mettre les fichiers que vous avez partagé.

Mon dossier override/cache ne contient aucun fichier, peut être que c'est en mettant les fichiers validat et customer dans override/classes qu'il va se créer, je le supprimerai alors.

je vous tiens informé

Merci

Share this post


Link to post
Share on other sites
39 minutes ago, SOURIRE DES SAVEURS said:

pour faire les modifs, je dois remplacer les 2 fichiers validate et customer et c'est tout ? merci, mais j'ai toujours peur de faire une bêtise.

Le mieux pour éviter de perdre les modifications à la prochaine mise à jour de version, c'est d'utiliser les codes proposés pour l'override :

14 hours ago, Eolia said:

Ces codes sont à placer dans le repertoire /override/classes/ en prenant soin de vérifier qu'ils n'y sont pas déjà.

Une fois ces modifications effectuées, il faut aller dans le repertoire /cache (celui de la racine du site) et supprimer le fichier class_index.php pour que les modifications soient prises en compte.

Share this post


Link to post
Share on other sites