Attaque générale de création de comptes clients en cours
Si vous ne l'avez pas encore expérimenté, sachez que depuis la fin de la semaine dernière, une "attaque" est opérée sur les installations de PrestaShop sous la forme de création de comptes fictifs et donc pollueurs.
Ne me demandez pas pourquoi certains s'amusent à créer ce type d'attaque inutile, mais à part vous embêter cela n'a pas trop de risque, il semble que cela soit un script qui cherche les installations de PrestaShop dans le monde et s'amuse à créer des comptes clients.
La Solution
Comme souvent, lorsque PrestaShop rencontre un soucis et qu'il y a une urgence à intervenir, la commaunauté répond présente et plus particulièrement Eolia et Doekia.
Lisez le Topic du forum abordant le problème et apportant un solution : Topic.
Mise en oeuvre
Deux techniques sont à votre disposition pour mettre en oeuvre cette correction si votre boutique est touchée par cette attaque.
Dans le code
Modifiez les fichier /classes/Validate.php en y ajoutant ce code
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); }
Puis dans le fichier /classes/Customer.php remplacez
'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),
Par Override
Un override est une surcharge de la classe originelle par un bout de code modifiant le fonctionnement de la classe de base. Cela évite de devoir réécrire les corrections apportées à votre version de PrestaShop si vous la mettez à jour et surtout cela permet à quelqu'un d'extérieur de connaître ces modifications très rapidement.
Eolia propose les deux fichiers Validate.php et Customer.php à enregistrer dans le répertoire override de votre installation PrestaShop.
Conclusion
Quelque soit votre solution, il se peut que vous ne constatiez pas d'amélioration dans le comportement de votre boutique, c'est juste qu'il vous faudra effacer le fichier /cache/classe_index.php
Si vous n'arrivez pas à mettre en oeuvre cette solution ou si vous avez peur de la mettre en place sur votre boutique PrestaShop, je peux m'en charger, il vous suffit de commander 1 ticket d'intervention et de préparer un accès FTP à votre site que je vous demanderez après la commande.
Mise à jour 03/05/2019 :
PrestaShop porpose d'intégrer ce patch dans la nouvelle version 1.6.1.24 disponible ce jour en téléchargement ainsi que la version 1.7.5.2 aussi disponible.
Discussions