Jump to content

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


Recommended Posts

13 minutes ago, doekia said:

Utilisez, ce patch, http://area51.enter-solutions.com/snippets/122 que j'ai écrit devant le nombre incalculable de médiocrité ambiante. Je n'arrive pas a comprendre que vous décidiez de vous occuper vous même de vos shop sans vouloir acquérir le minimum de compétence. C'est de l'inconscience pure.

Pour moi le sujet est clos, je ne répondrai plus

Pour moi le patch n'a pas créé les fichiers. J'ai dû le faire manuellement (peut être une question de droits au niveau des dossiers)

Link to comment
Share on other sites

1 minute ago, Eolia said:

Sans déconner ?

Donc vous installez une override mais vous avez désactivé cette fonctionnalité ???

Je vous trouve durs les gars, il suffit de lui répondre : "Désactiver toutes les surcharges" doit être sur non, car sinon ça désactive les override

Link to comment
Share on other sites

il y a 2 minutes, Fab20620 a dit :

Les fichiers vont dans override/classes/ pas dans override, si j'en crois une autre publication vous ne les avez peut être pas mis au bon endroit (si c'est ça, il faudra encore penser à virer class_index.php après les avoir mis au bon endroit)

Merci,

je les ai bien mis dans override/classes

image.png.f53f59512a62a2a0b3ff91c391b63b16.png

et j'ai bien ensuite supprimer le fichier dans le dossier cache à la racine.

Il semblerai, peut être, que ça vienne de mon paramétrage en back office dont j'ai joint les copies ci dessus

Link to comment
Share on other sites

Ok...

Donc on réagit dès les premières attaques

On propose 2 solutions + une troisième automatique

Les utilisateurs ratent leurs copier/coller

Les utilisateurs ne lisent pas les posts correctement

Les utilisateurs ne connaissent pas leur BO

Il y a une limite à l'aide aussi hein, il faut quand même se prendre en main un minimum.

Perso, j'abandonne également ce post, Joyeuses Pâques à tous et désolé d'y être intervenu.

  • Like 1
Link to comment
Share on other sites

3 minutes ago, Fab20620 said:

Je vous trouve durs les gars, il suffit de lui répondre : "Désactiver toutes les surcharges" doit être sur non, car sinon ça désactive les override

Sauf que si il/elle l'a positionné sur désactiver parce qu'elle a un loup dans un module ça va lui péter à la figure. Compte tenu de ce que je lis, j'ose même pas regarder sont chateau de carte branlante

Link to comment
Share on other sites

1 minute ago, Eolia said:

Ok...

Donc on réagit dès les premières attaques

On propose 2 solutions + une troisième automatique

Les utilisateurs ratent leurs copier/coller

Les utilisateurs ne lisent pas les posts correctement

Les utilisateurs ne connaissent pas leur BO

Il y a une limite à l'aide aussi hein, il faut quand même se prendre en main un minimum.

Perso, j'abandonne également ce post, Joyeuses Pâques à tous et désolé d'y être intervenu.

pareil

Link to comment
Share on other sites

Just now, Eolia said:

Ok...

Donc on réagit dès les premières attaques

On propose 2 solutions + une troisième automatique

Les utilisateurs ratent leurs copier/coller

Les utilisateurs ne lisent pas les posts correctement

Les utilisateurs ne connaissent pas leur BO

Il y a une limite à l'aide aussi hein, il faut quand même se prendre en main un minimum.

Perso, j'abandonne également ce post, Joyeuses Pâques à tous et désolé d'y être intervenu.

Je comprends que ça puisse vous saouler, mais comme vous le savez, quand on parle code/technique c'est du chinois pour une majorité, ce n'est pas pour autant qu'il faut les traiter de médiocres, ils sont peut être (surement même) plus forts que nous dans le domaine qu'ils maitrisent. Aider les autres c'est bien, et je pense que les remerciements ne manquent pas. Merci encore pour votre aide, au nom de tous ceux que vous avez aidé sur ce coup là (et sur bon nombre d'autres problèmes). Je ne voulais pas te froisser en tous cas 🙂

Link to comment
Share on other sites

il y a 10 minutes, Eolia a dit :

Ok...

Donc on réagit dès les premières attaques

On propose 2 solutions + une troisième automatique

Les utilisateurs ratent leurs copier/coller

Les utilisateurs ne lisent pas les posts correctement

Les utilisateurs ne connaissent pas leur BO

Il y a une limite à l'aide aussi hein, il faut quand même se prendre en main un minimum.

Perso, j'abandonne également ce post, Joyeuses Pâques à tous et désolé d'y être intervenu.

Eolia et Doekia, ainsi que Fab20620,

même s'ils vous semblent que l'on est des assistés, car en effet nous n'avons pas votre expérience,

même s'ils vous semblent qu'on ne comprends rien, parce que le code nous ai inconnu,

et même s'ils vous semblent que vous ne nous servez à rien, parce qu'on n'est pas informaticien, et qu'on est plus long à comprendre

Je vous remercie, parce que, je pense, aujourd'hui, avoir compris un truc de plus sur prestashop,

et surtout j'ai compris que vous êtes formidables et qu'on a besoin de vous.

Merci et Joyeuse fêtes de Pâques.

Link to comment
Share on other sites

avez vous remarqué une incidence sur les inscriptions des vrais clients en laissant l'attaque en place? 

de mon coté très calme, mais ca doit etre paques mais bon  les correlations sont vites faits ! 

 

Merci à Eolia et Doekia pour la solution, au top! 

Link to comment
Share on other sites

Salut a tous,

Et merci a ce qui cherche et apporte leur aide.
Pour moi ça n'a pas marché, c'est même la cata. J'ai fait en manuel comme indiqué  Doekia au début. Pas de succès, sauf une page blanche. J'ai remis les fichiers d'origine et passé par le patch : http://area51.enter-solutions.com/snippets/122 de Doékia merci a lui.
J'ai eu le résultat : La classe Validate est déjà remplacée. Vous devriez traiter manuellement. La classe Client est déjà remplacée. Vous devriez traiter manuellement. FIN
Je sais pas comment lire ça. J'ai plut de page blanche, ça a l'air de marcher. Sauf que maintenant quand j'arrive sur une page d'article j'ai : capture-1.
Et ça me donne l'erreur Capture-2. Ce qui évoque rien pour moi. Mais cela me rappel des mauvais souvenir.
Les onglets ce chargent pas et les boutons du bas tournent indéfiniment.
Ce qui veut dire que je peut plut travailler sur les produits.
J'ai remis les fichiers d’origine c'est pareil et recommencé depuis le début c'est pareil aussi. j'ai la même erreur.
Ci quelqu'un peut m'aider, je suis preneur.
Merci

 

Capture-1.JPG

Capture-2.JPG

Link to comment
Share on other sites

Il y a 5 heures, Eolia a dit :

Sans déconner ?

Donc vous installez une override mais vous avez désactivé cette fonctionnalité ???

Bonjour,

me revoilà. En fait, il y avait bien une raison à la désactivation des surcharges. J'avais une page blanche lorsque on mettez un produit dans le panier. C'est en faisant un essai que je m'en suis apperçue. Une idée ? Merci

Link to comment
Share on other sites

bonjour Okom3pom,
Oui j'avais cru comprendre le message, mais j'avais retiré remis les fichiers originaux et j'avais pas le mode débug quand 'ai patché. C'est la fin du patchage (j'invente des mots) que ces lignes sont apparut en haut de page.
Mais mon souci maintenant et de loin l'erreur serveur. je peur rien faire dans les pages produits. Même pas en ajouter.

Link to comment
Share on other sites

Bien,

Je vois que j'ai une page blanche pour modifier ou créer une catégorie.
Erreur
Warning: Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' (this will throw an Error in a future version of PHP) in /home/dominique/public_html/maison_et_piscine/classes/Rijndael.php on line 124

Parse error: syntax error, unexpected 'public' (T_PUBLIC), expecting end of file in /home/dominique/public_html/maison_et_piscine/classes/Uploader.php on line 300

Je crois que j'aurais du me contenter de garder les spams.

Link to comment
Share on other sites

Bonsoir Eolia,
Pour PHP je suis en 5.2.16
Pour Prestashop, quand j'ai voulu mettre à jour, j'ai foutu mon site en rideau. J'ai pas voulue re essayé.
J-utilisé pas blowfish. J'ai modifié settings.inc mais des clés était déjà dedans. ça n'a rien fait.
Pour Mcrypt je vais voir. Mais sa marché bien avant.

Link to comment
Share on other sites

Ok passez en 5.6 déjà.

Si les clés étaient déjà là, il ne fallait pas les remplacer ou tous les mots de passe clients vont être perdus...

Pouvez-vous nous copier ici le contenu du fichier /home/dominique/public_html/maison_et_piscine/classes/Uploader.php ?

Link to comment
Share on other sites

Pour Eolia
 Les posts se croisent on suis plut. Si e passe en 5.6 maintenant ça vas pas mettre le boxon ? Voila le contenu du fichier

<?php
/*
* 2007-2017 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <[email protected]>
*  @copyright  2007-2017 PrestaShop SA
*  @license    http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/

class UploaderCore
{
    const DEFAULT_MAX_SIZE = 10485760;

    private $_check_file_size;
    private $_accept_types;
    private $_files;
    private $_max_size;
    private $_name;
    private $_save_path;

    public function __construct($name = null)
    {
        $this->setName($name);
        $this->setCheckFileSize(true);
        $this->files = array();
    }

    public function setAcceptTypes($value)
    {
        if (is_array($value) && count($value)) {
            $value = array_map(array('Tools', 'strtolower'), $value);
        }
        $this->_accept_types = $value;
        return $this;
    }

    public function getAcceptTypes()
    {
        return $this->_accept_types;
    }

    public function setCheckFileSize($value)
    {
        $this->_check_file_size = $value;
        return $this;
    }

    public function getFilePath($file_name = null)
    {
        if (!isset($file_name)) {
            return tempnam($this->getSavePath(), $this->getUniqueFileName());
        }

        return $this->getSavePath().$file_name;
    }

    public function getFiles()
    {
        if (!isset($this->_files)) {
            $this->_files = array();
        }

        return $this->_files;
    }

    public function setMaxSize($value)
    {
        $this->_max_size = intval($value);
        return $this;
    }

    public function getMaxSize()
    {
        if (!isset($this->_max_size) || empty($this->_max_size)) {
            $this->setMaxSize(self::DEFAULT_MAX_SIZE);
        }

        return $this->_max_size;
    }

    public function setName($value)
    {
        $this->_name = $value;
        return $this;
    }

    public function getName()
    {
        return $this->_name;
    }

    public function setSavePath($value)
    {
        $this->_save_path = $value;
        return $this;
    }

    public function getPostMaxSizeBytes()
    {
        $post_max_size = ini_get('post_max_size');
        $bytes         = (int)trim($post_max_size);
        $last          = strtolower($post_max_size[strlen($post_max_size) - 1]);

        switch ($last) {
            case 'g': $bytes *= 1024;
            case 'm': $bytes *= 1024;
            case 'k': $bytes *= 1024;
        }

        if ($bytes == '') {
            $bytes = null;
        }
        return $bytes;
    }

    public function getSavePath()
    {
        if (!isset($this->_save_path)) {
            $this->setSavePath(_PS_UPLOAD_DIR_);
        }

        return $this->_normalizeDirectory($this->_save_path);
    }

    public function getUniqueFileName($prefix = 'PS')
    {
        return uniqid($prefix, true);
    }

    public function checkFileSize()
    {
        return (isset($this->_check_file_size) && $this->_check_file_size);
    }

    public function process($dest = null)
    {
        $upload = isset($_FILES[$this->getName()]) ? $_FILES[$this->getName()] : null;

        if ($upload && is_array($upload['tmp_name'])) {
            $tmp = array();
            foreach ($upload['tmp_name'] as $index => $value) {
                $tmp[$index] = array(
                    'tmp_name' => $upload['tmp_name'][$index],
                    'name'     => $upload['name'][$index],
                    'size'     => $upload['size'][$index],
                    'type'     => $upload['type'][$index],
                    'error'    => $upload['error'][$index]
                );

                $this->files[] = $this->upload($tmp[$index], $dest);
            }
        } elseif ($upload) {
            $this->files[] = $this->upload($upload, $dest);
        }

        return $this->files;
    }

    public function upload($file, $dest = null)
    {
        if ($this->validate($file)) {
            if (isset($dest) && is_dir($dest)) {
                $file_path = $dest;
            } else {
                $file_path = $this->getFilePath(isset($dest) ? $dest : $file['name']);
            }

            if ($file['tmp_name'] && is_uploaded_file($file['tmp_name'])) {
                move_uploaded_file($file['tmp_name'], $file_path);
            } else {
                // Non-multipart uploads (PUT method support)
                file_put_contents($file_path, fopen('php://input', 'r'));
            }

            $file_size = $this->_getFileSize($file_path, true);

            if ($file_size === $file['size']) {
                $file['save_path'] = $file_path;
            } else {
                $file['size'] = $file_size;
                unlink($file_path);
                $file['error'] = Tools::displayError('Server file size is different from local file size');
            }
        }

        return $file;
    }

    protected function checkUploadError($error_code)
    {
        $error = 0;
        switch ($error_code) {
            case 1:
                $error = sprintf(Tools::displayError('The uploaded file exceeds %s'), ini_get('upload_max_filesize'));
                break;
            case 2:
                $error = sprintf(Tools::displayError('The uploaded file exceeds %s'), ini_get('post_max_size'));
                break;
            case 3:
                $error = Tools::displayError('The uploaded file was only partially uploaded');
                break;
            case 4:
                $error = Tools::displayError('No file was uploaded');
                break;
            case 6:
                $error = Tools::displayError('Missing temporary folder');
                break;
            case 7:
                $error = Tools::displayError('Failed to write file to disk');
                break;
            case 8:
                $error = Tools::displayError('A PHP extension stopped the file upload');
                break;
            default:
                break;
        }
        return $error;
    }

    protected function validate(&$file)
    {
        $file['error'] = $this->checkUploadError($file['error']);

        if ($file['error']) {
            return false;
        }

        $post_max_size = $this->getPostMaxSizeBytes();

        if ($post_max_size && ($this->_getServerVars('CONTENT_LENGTH') > $post_max_size)) {
            $file['error'] = Tools::displayError('The uploaded file exceeds the post_max_size directive in php.ini');
            return false;
        }

        if (preg_match('/\%00/', $file['name'])) {
            $file['error'] = Tools::displayError('Invalid file name');
            return false;
        }

        $types = $this->getAcceptTypes();

        //TODO check mime type.
        if (isset($types) && !in_array(Tools::strtolower(pathinfo($file['name'], PATHINFO_EXTENSION)), $types)) {
            $file['error'] = Tools::displayError('Filetype not allowed');
            return false;
        }

        if ($this->checkFileSize() && $file['size'] > $this->getMaxSize()) {
            $file['error'] = sprintf(Tools::displayError('File (size : %1s) is too big (max : %2s)'), $file['size'], $this->getMaxSize());
            return false;
        }

        return true;
    }

    protected function _getFileSize($file_path, $clear_stat_cache = false)
    {
        if ($clear_stat_cache) {
            clearstatcache(true, $file_path);
        }

        return filesize($file_path);
    }

    protected function _getServerVars($var)
    {
        return (isset($_SERVER[$var]) ? $_SERVER[$var] : '');
    }

    protected function _normalizeDirectory($directory)
    {
        $last = $directory[strlen($directory) - 1];

        if (in_array($last, array('/', '\\'))) {
            $directory[strlen($directory) - 1] = DIRECTORY_SEPARATOR;
            return $directory;
        }

        $directory .= DIRECTORY_SEPARATOR;
        return $directory;
    }
}
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);
    }

 

Link to comment
Share on other sites

Non mais vous êtes sérieux ou quoi ? Pas étonnant que votre site soit en rideau...

Que fait cette fonction dans le fichier rindjael.php ???

C'est dans Validate.php qu'on a demandé de l'ajouter pas ailleurs

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

 

Link to comment
Share on other sites

il y a 2 minutes, Dominique a dit :

Et en cliquant sur la version 5.6, il me prose des cases a cocher pour Mycript, il est déjà coché. Il en faudrait d'autre d'important a cocher ?

No, il n'y a rien d'autre à cocher et aucun risque. Prestashop 1.6 a été écrit pour php 5.6, la 7 n'existait pas à l'époque.

Link to comment
Share on other sites

il y a une heure, SOURIRE DES SAVEURS a dit :

Bonjour,

me revoilà. En fait, il y avait bien une raison à la désactivation des surcharges. J'avais une page blanche lorsque on mettez un produit dans le panier. C'est en faisant un essai aujourd'hui que je m'en suis apperçue. Une idée ? Merci

Comment est-ce que je peux savoir ce qui me provoque des pages blanches lorsque Désactiver toutes les surcharges est sur

non
ça se produit lorsque je met un article dans le panier et que je fais commander.
Merci
Link to comment
Share on other sites


J'ai rien compris.

J'ai mis le patch dans le fichier admin et j'ai tapé l'url indiqué. Après je sais pas. Je ne sais même pas ce que c'est rindjael.php
Je vous ai donné le fichier Uploader.php Je me suis peut être trompé ailleurs je ne sais pas.
Comment je peur rétablir la situation.

Link to comment
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

Link to comment
Share on other sites

4 minutes ago, Eolia said:

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

Le soucis c'est que la personne qui a fait mon site il y a de cela plusieurs années n'est plus de ce monde et je n'y connais quasi rien du tout, j'aimerais si possible que quelqu'un m'aide, je peux rémunérer cette personne pour le service rendu bien sûr.

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

Si vous avez suivi nos conseils à la lettre, vous avez accès à votre ftp, donc faites ce que je vous ai dit dans le fichier /config/defines.inc.php et donnez-nous l'erreur qui s'affichera à la place de votre page blanche

Link to comment
Share on other sites

Certe j'ai tout lu mais bon... Me retrouver avec des bugs un dimanche de pâque j'étais pas trop chaud, donc j'ai fais ca il y a 2 jours, ça a tenu jusqu'à aujourd'hui et la rebelote presque la même IP d'ailleurs , je vais le rebloquer demain matin voir si ça persiste 

Je suis sur que c'est la même ip pour tout le monde. 

Je pense même bloquer une plage d'ip ça sera plus radical 

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

On 4/20/2019 at 12:39 PM, doekia said:

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

 


Bravo doekia pour cette très bonne idée.

Avec 1.4.8.2 un nom en www.*** passe quand même.
Dommage que je ne puisse pas faire plus d'essais : sans environment de dev sous la main, j'ai testé en prod... Pas bien...
Alors pour l'instant c'est ban sur les ip Estonienne qui ont créé ces spams.
 

Link to comment
Share on other sites

1 hour ago, cmak said:

Deux ip depuis le 19/04. Elles laisssent aussi des traces dans les logs postfix, sans exciter fail2ban.
46.22.220.10
46.22.220.49
 

merci les gars, ca semble tenir. 

J'avais envie d'éviter de toucher le code ce week end vu les massacres vu plus haut (bon le fix semble etre ok, ca vient des utilisateurs mais bon ca rassure pas terrible)

J'avais d'autres chats à fouetter ce we, la pour l'instant plus de hot anna qui s'inscrit donc perfectissimo

Link to comment
Share on other sites

Cette solution fonctionne parfaitement (et très facile à mettre en oeuvre).

Croisons les doits pour que le robot ne soit pas mis à jour tout de suite.... sinon ça recommencera. Et on devra trouver une autre "feinte" pour bloquer les inscriptions.

 

Merci doekia

Link to comment
Share on other sites

Il y a 12 heures, Eolia a dit :

Si vous avez suivi nos conseils à la lettre, vous avez accès à votre ftp, donc faites ce que je vous ai dit dans le fichier /config/defines.inc.php et donnez-nous l'erreur qui s'affichera à la place de votre page blanche

Bonjour,

lorsque je mets les fichiers dans controler, et que je mets non sur desactiver toutes les surcharges, j'ai une page blanche depuis mon front office lorsque je mets un produit dans le panier et que je clique sur commander.

En mode debug, j'ai :

Fatal error: Uncaught Error: Call to undefined method Product::checkAccessStatic() in /home/souriredessaveur/public_html/classes/Cart.php:3301 Stack trace: #0 /home/souriredessaveur/public_html/controllers/front/OrderController.php(52): CartCore->checkProductsAccess() #1 /home/souriredessaveur/public_html/classes/controller/Controller.php(170): OrderControllerCore->init() #2 /home/souriredessaveur/public_html/classes/Dispatcher.php(367): ControllerCore->run() #3 /home/souriredessaveur/public_html/index.php(28): DispatcherCore->dispatch() #4 {main} thrown in /home/souriredessaveur/public_html/classes/Cart.php on line 3301

Qu'est-ce que ça veut dire ?

et voici ma ligne du fichier cart.php

     ligne 3300  foreach ($this->getProducts() as $product) {
     ligne 3301       if (!Product::checkAccessStatic($product['id_product'], $this->id_customer)) {
     ligne 3302           return $product['id_product'];

Que dois-je faire ? Pour l'instant, j'ai mis Oui dans désactiver toutes les surcharges, comme ça je n'ai plus de page blanche dans le panier, mais en même temps, le blocage de ces inscriptions ne fonctionnent pas.

merci de votre aide

Link to comment
Share on other sites

Normalement cette fonction est native et existe dans Product.php

image.thumb.png.1ce993eb25bac76ac153cd7fb3d1c8ef.png

Si cette fonction n'est pas présente dans /classes/Prdoduct.php, il y a un gros souci

Si elle est présente, c'est qu'un override moisi de Product.php existe dans /overrides/classes/ (fichier à supprimer donc)

Link to comment
Share on other sites

Il y a 13 heures, Eolia a dit :

Votre boutique est ok et patchée à présent^^

Merci a vous.
Grâce a vous beaucoup de monde se casses moins la tête contre les mur.
Quant on a pas les connaissances suffisante on panique rapidement et on se perd certainement aussi facilement.
Je vous remercie donc d'être là. Et a Doékia aussi, qui c'est foi-ci ma pas aidé mais la fait dans le passé.
Vous est les piliers de Prestahop Forum.
Merci a tous.

Link to comment
Share on other sites

il y a 35 minutes, Eolia a dit :

Normalement cette fonction est native et existe dans Product.php

image.thumb.png.1ce993eb25bac76ac153cd7fb3d1c8ef.png

Si cette fonction n'est pas présente dans /classes/Prdoduct.php, il y a un gros souci

Si elle est présente, c'est qu'un override moisi de Product.php existe dans /overrides/classes/ (fichier à supprimer donc)

Bonjour,

j'ai bien un fichier Product.php dans /overrides/classes

je ne sais pas à quoi il sert, je le joins.

pouvez-vous me dire s'il y a dans ce fichier des particularités ou s'il faut vraiment que je le supprime et que c'est sans risque ?

Merci

Product.php

Link to comment
Share on other sites

Je ne sais pas en quelle version vous êtes mais ce fichier correspond à une version de la classe Product de 2014 et effectivement, la fonction appelée n'existait pas encore.

Vu que votre boutique fonctionnait très bien avec les overrides désactivées, le supprimer ne posera aucun problème (auparavant il n'était pas lu et maintenant il ne le sera plus vu qu'il n'existera plus)

C'est l’exemple même d'overrides foireuses. Plutôt que d'ajouter ou modifier une fonction précise on c/c toute la classe et on arrive à ce genre de pb (et en plus les maj effectuées par la suite ne seront jamais prises en compte)

Link to comment
Share on other sites

blocage des ips fonctionne à 90% pour l'instant... 

Seulement 2 inscriptions cette nuit versus 7-8 en temps normal. 

J'attend de voir la suite.

Si d'autres IP pointent, merci de les indiquer afin qu'on puisse les blacklister! 

PS : merci à ce forum et a prestashop , on vit dans un monde incroyable quand même! 

Link to comment
Share on other sites

On 4/20/2019 at 11:29 AM, doekia said:

image.png.f73bd52325a478f320b2bbd765b12ddd.png

image.thumb.png.9b336ba0172bb4a17aa2a574b5c642e9.png

Bonjour à tous,

j'ai suivi vos instructions, pour le moment pas d'erreur j'attends de voir si lle chmilblik fonctionne ;) merci d'avance pour ca!

en tout cas j'ai un petit souci, je ne peux pas supprimer les faux comptes qui ont été créés... que je supprime a l'unité ou en masse j'ai l'erreur Property Customer->lastname is not valid

une idée? j'ai vu que quelqu'un avait ce pb plus haut dans le sujet mais visiblement pas de solution je crois.

merci de votre travail, sacrié boulot!!

Link to comment
Share on other sites

Bonjour à tous,

Je viens de faire la modification des 2 fichiers et cela fonctionne. Bien mettre le code avant le dernier } pour le validate.php

Un énorme merci à Eolia et Doekia

Café offert à Doekia si Eolia tu acceptes les petits dons, ça sera avec plaisir!

Link to comment
Share on other sites

question d'apprenti jedi, 

il vaut mieux guerir que prevenir, 

si je fais les modifs et que ca part en cacahouete, je remet mes fichiers d'origine et le shop repart beau comme un camion? ou je dois lancer un SOS? 

 

bon je me doute que c'est ok en remettant les fichiers d'origine mais si on peut me confirmer , parfait

Link to comment
Share on other sites

merci pour votre rapidité ! en fait je suis un peu confu car j'avais essayé les 2 options!! et va comprendre ca marchait pas et la ça a fonctionné (option 1) 😕

enfin bref tout semble fonctionner pour le mieux. je n'ai plus de spam et visiblement mes clients peuvent continuer a acheter puisque je viens de valider une commande.

la question que je me pose maintenant est :

le module eicaptcha, il sert a quelquechose ou je peux le supprimer franchement? a priori il est censé protéger contre spam contact ET spam inscription (j'ai coché les 2 options)...

merci a+

 

Link to comment
Share on other sites

9 minutes ago, Epicapo said:

merci pour votre rapidité ! en fait je suis un peu confu car j'avais essayé les 2 options!! et va comprendre ca marchait pas et la ça a fonctionné (option 1) 😕

enfin bref tout semble fonctionner pour le mieux. je n'ai plus de spam et visiblement mes clients peuvent continuer a acheter puisque je viens de valider une commande.

la question que je me pose maintenant est :

le module eicaptcha, il sert a quelquechose ou je peux le supprimer franchement? a priori il est censé protéger contre spam contact ET spam inscription (j'ai coché les 2 options)...

merci a+

 

merci pour les reponses. 

 

Pour EIcaptcha tu peux le garder pour le formulaire de contact 

pour le spam d'inscription actuel, il ne sert à rien, il passe par dessus donc tu peux l'enlever  surtout au moment de passer la commande, pas le meilleur a garder...

 

 

Link to comment
Share on other sites

Bonjour
Merci à vous pour le patch. Comme d'habitude vous êtes les premiers à réagir et à trouver une solution 😉

Juste un petit problème, j'ai testé en manuel dans le code et en override par le patch.
Les urls dans nom et prénom sont bien impossible à mettre , mais quand je mets un vrai prénom/nom, du coup j'ai une erreur création client (nom invalide, prénom invalide).

Et sur 3 boutiques différentes (deux en 1.6.0.14 et une 1.6.1.18).

Une idée ?

Cordialement

Nelson

 

presta.jpg

Link to comment
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

 

Link to comment
Share on other sites

6 minutes ago, Eolia said:

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

 

C'est fait, pas de message, une page blanche 

Link to comment
Share on other sites