ANTI SPAMS comptes clients Prestashop solution et sécurité

ATTENTION lors de la création de votre internet de ventes en ligne : Depuis ce Weekend de Pâques une nouvelle attaque de ROBOTS spammer inonde les formulaires de création de comptes clients par des SPAMS frauduleux.

spams comptes clients prestashop

La solution pour éviter les spams et faux comptes clients Prestashop

Un GRAND merci à nos héros sur le FORUM de Prestashop qui encore vont nous sauver la vie ! DOEKIA pour l’astuce et EOLIA pour les conseils de mise en place : https://www.prestashop.com/forums/topic/981158-securite-spam-compte-client-solution-13-17/

Solution de sécurité Prestashop 1.5 à 1.7 pour arrêter les spams comptes clients

1. Créer le fichier dans www/override/classes/Validate.php l’éditer s’il existe déjà.

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

2. Créer le fichier dans www/override/classes/Customer.php l’éditer s’il existe déjà.

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

Une fois cette opération de création des OVERRIDES, penser à supprimer le fichier www/cache/class_index.php qui se régénérera automatique pour prendre en compte les nouveaux fichiers.

Infos du 27-01 : Un module est proposé par l’agence Aurone de Tunis : Téléchargez et installer le module Prestashop

Solution de sécurité Prestashop 1.3 à 1.4 pour arrêter les spams comptes clients

Pour la version 1.3 de Prestashop, vous devrez modifier les fichiers PHP, l’override n’existant pas encore.

1. Créer le fichier dans www/override/classes/Validate.php l’éditer s’il existe déjà.

class Validate extends ValidateCore
{
    public static function isCustomerName($name)
    {
        if (preg_match('/www|http/ui',$name)) {
            return false;
        }

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

}

2. Créer le fichier dans www/override/classes/Customer.php l’éditer s’il existe déjà.

class Customer extends CustomerCore { 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'); } 

Supprimer les spams Prestashop des comptes clients

La procédure finale vous invite à supprimer les comptes clients frauduleux et à supprimer le fichier www/cache/class_index.php pour que les fichiers override soient actifs.

Ensuite vous n’aurez plus qu’à tester la création d’un compte client TEST pour voir si tout fonctionne et si vous n’avez pas une page blanche Prestashop qui s’affiche.