Jump to content

Erreur récurrente "Jeton (token) invalide" depuis lundi


Recommended Posts

Bonjour à tous,

depuis le confinement ma boutique physique étant fermée je travaille sur l'ouverture d'une boutique en ligne.
Mais depuis lundi, j'ai énormément de soucis car j'ai sans arrêt l'erreur "Jeton (token) invalide: accéder à ce lien peut entraîner un éventuel problème de sécurité." qui apparait lorsque je valide une fiche ou lorsque je navigue dans le back-office.

L'erreur n’apparaît pas à chaque changement de page mais très très souvent.

Mon site est hébergé chez OVH, je leur ai demandé s'il y avait eu des problèmes de leur coté mais je n'ai pas encore de réponse.
Jusqu'à hier, j'arrivais encore à avancer en utilisant le partage de connexion 4G de mon téléphone car j'ai remarqué que l'erreur arrivait beaucoup plus souvent en étant connecté sur ma ligne adsl free.
Mais depuis ce matin, aucune différence, l'erreur arrive une page sur deux, que ce soit en 4G ou adsl.

Est ce que je suis le seul à rencontrer ce genre de problème ?
Est-ce que quelqu'un aurait une solution, même temporaire ? j'ai essayé de désactiver le contrôle de token mais sans succès (dans mes recherches internet j'ai trouvé des pistes parlant de modifier la méthode isLoggedBack de la classe Employee mais je ne vois pas d'amélioration).

Link to comment
Share on other sites

Bonjour,

Cela n'est pas très grave.

Une simple alerte de sécurité, car ta session est actif trop longtemps.

Tu peux te rendre dans la partie administration de ton back office.

Paramètre avancée -> administration 

désactiver cette option 
https://gyazo.com/ecd7a9ca49a61138c580c05b8f7c9ba0

Ensuite tu pourra la réactiver par  la suite.

Ton compte est utiliser par une autres personnes ou te te connecte ailleurs avec ce compte ?

Cordialement.

Link to comment
Share on other sites

Merci pour ta réponse.
Mais j'ai déjà désactivé cette option et toujours le même problème.
Et ce n'est pas un problème de temps de session, le problème peut arriver au bout de quelques minutes. Et j'ai beau cliqué sur "oui, je comprends les risques" ou "sortez-moi d'ici", me déconnecter, me reconnecter, le problème persiste.

Et comme je disais, j'ai fait les tests en normal, en navigation privée, sur plusieurs navigateurs et sur plusieurs pc, toujours le même soucis :(

 

Link to comment
Share on other sites

Hello, peut être regarder ce qu'il se passe du côté /classes/Tools.php, tu verras la méthode getToken(); qui génère un jeton en cryptant un cookie.

https://www.blmodules.com/prestashop-tutorials-users/prestashop-quick-access-fix-invalid-security-token/#.XphUncgzaUk

peut être que ceci pourra t'aider ??

Link to comment
Share on other sites

Merci pour vos réponses.
J suis sur prestashop 1.7.5.2, hebergé en mutualisé sur ovh, sur un apache.
Au niveau des modules, j'ai uniquement ajouté 1-click upgrade, mais il y a plus de 6 mois et je m'en suis pas servi depuis.
Au niveau des tokens, ils sont stockés dans quel répertoire ?

Guim, la solution consiste en quoi ? modifier la version php utilisée ? actuellement, je suis en 7.2

Link to comment
Share on other sites

je suis passé en php 7.1 mais toujours les mêmes problèmes.

J'ai de sérieux doutes sur ovh, je soupçonne une modif au niveau serveur mais pour le moment je n'arrive pas à avoir l'info avec le support, ils me disent que le site est bien accessible.

C'est en effet le cas pour le front, il n'y a aucun problème. Le problème se situe bien dans le back où cette p... de page token invalide apparait un clic sur deux.
Quelqu'un saurait comment désactiver temporairement cette vérification de token, histoire que nous puissions avancer sur la création des fiches produit en attendant d'avoir une réponse sérieuse de la part d'ovh.
J'ai cherché un peu dans le code de prestashop mais pour le moment sans succès.

 

J'envisage de rapatrier tout le site en local pour que nous puissions créer les fiches (on aurait aimer ouvrir le site assez rapidement en version clic-n-collect pour compenser un peu la perte d'activité de notre fermeture de boutique, mais 3000 fiches à créer et cette ano ne nous aide franchement pas) mais j'aurais aimé éviter parce que j'ai peur de perdre un temps fou à resynchroniser le presta de prod avec les données locales.

 

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

2 hours ago, GuimDotcom said:

Dans le doute essaye de rajouter ça :


if(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'){
    $_SERVER['HTTPS']='on';
}

Juste après la balise ouvrante PHP dans ton fichier adminxXxXxXXxxX/index.php

Même si j'ai pas bien compris le code j'ai tenté le coup mais toujours pareil :(

Link to comment
Share on other sites

je continue à fouiller dans le code de prestashop et j'ai fait "évoluer" mon problème.
Dans la classe PrestaShopBundle\EventListener\TokenizedUrlsListener, méthode onKernelRequest, j 'ai commenté toute la partie vérifiant le token :

/*
        $token = false;
        if ($request->query->has('_token')) {
            $token = new CsrfToken($this->username, $request->query->get('_token'));
        } elseif (isset($request->query->get('form')['_token'])) {
            $token = new CsrfToken('form', $request->query->get('form')['_token']);
        }

        if (false === $token || !$this->tokenManager->isTokenValid($token)) {
            // remove token if any
            if (false !== strpos($uri, '_token=')) {
                $uri = substr($uri, 0, strpos($uri, '_token='));
            }

            $response = new RedirectResponse($this->router->generate('admin_security_compromised', ['uri' => urlencode($uri)]));
            $event->setResponse($response);
        }*/

je n'ai plus la page token invalid qui apparait, mais à la place, lorsque je valide un formulaire de création de produit, j ai le message d'erreur suivant qui apparait et le form n'est pas validé :

"The CSRF token is invalid. Please try to resubmit the form."

Est-ce que ça vous dit qqchose ?

Link to comment
Share on other sites

Je n'ai pas la solution mais j'ai le même problème. Depuis quelques jours ce message dans le backoffice. J'ai la version 1.7.6.4 en local, sur un serveur wamp et également 1 click upgrade et 2 autres modules (dont 1 perso). Comme c'est mon premier prestashop et que je suis en train de développer dessus, je me suis las trop posé la question.

Je ne pense pas que ce soit du côté de l'hébergeur mais plus un soucis ps. J'essaye de regarder tout à l'heure si je trouve une solution.

Dans tous les cas après 12 années OScommerce, je t'avoue que je n'arrive absolument pas à avoir confiance en ps. J'ai l'impression qu'on essaye de faire joli au détriment de la stabilité...mais c un avis perso

Link to comment
Share on other sites

non, pas de CDN activé.
Les réponses d OVH sont toujours les mêmes, c'est un problème de prestashop donc débrouillez-vous.

Depuis ma dernière modif c'est quand même plus simple car j'ai pas la page d'erreur un clic sur deux.

Mais par contre, je reste persuadé qu'il y a un lien avec l'hébergement, j'ai beaucoup moins de soucis ce week-end en travaillant toute la journée. Et les seules fois où j'ai un message d'erreur, c'est en uploadant des images : HTTP 502 - NGINX Error ... alors que je suis sensé être sur un apache...

je verrais demain, voir si c est pas un problème de surcharge de serveur mutualisé.

Link to comment
Share on other sites

Oui, malgré ce qu'ils en disent, le problème vient de chez eux. Pour un même site dont la version de test est sur un autre hébergement (O2Switch pour ne pas les citer) et la version en ligne sur un mutu OVH, j'ai le problème sur le site en ligne et pas sur le site de dev. Cherchez l'erreur ...

Les mutu chez eux ne sont pas taillés pour du Prestashop ... 

Link to comment
Share on other sites

Sur Firefox, j'ai cleané tous les cookies, le cache, les mots de passe enregistrés et finalement je n'ai plus l'erreur. Difficile de dire ce qui a pu se passer (un cookie ou autre) mais dans mon cas je n'ai plus d'erreur.

En espérant que ça puisse t'aider.

Link to comment
Share on other sites

  • 1 month later...

Bonjour,

Même problème avec Prestashop 1.7.6.5, sur ovh performance 1, cluster 028.

La solution, dans le fichier :

/vendor/symfony/symfony/src/Symfony/Component/Form/Extension/Csrf/Type/FormTypeCsrfExtension.php

Ajouter le return; dans :

public function buildForm(FormBuilderInterface $builder, array $options)

    {

return;

        if (!$options['csrf_protection']) {

            return;

        }

———

Puis, mettre $defaultEnabled = false au lieu de true :

public function __construct(CsrfTokenManagerInterface $defaultTokenManager, $defaultEnabled = false, $defaultFieldName = '_token', T

———

Puis dans le fichier :

/src/PrestaShopBundle/EventListener/TokenizedUrlsListener.php

Ajouter return; comme ceci :

    public function onKernelRequest(GetResponseEvent $event)

    {

        $request = $event->getRequest();

        return;

        if (TokenInUrls::isDisabled()) {

            return;

        }

———

Edité : ajout  de ceci :

Pour éviter une erreur « This form should not contain extra fields » lors de la création / modification de catégories, modifier dans le fichier :

/vendor/symfony/symfony/src/Symfony/Component/Form/Extension/Validator/Constraints/FormValidator.php

 

Vers la ligne 130, juste après //Mark the form with an error if it contains extra fields, ajouter /* et après } ajouter */ pour obtenir quelque chose comme ceci :

 

        // Mark the form with an error if it contains extra fields

/*

        if (!$config->getOption('allow_extra_fields') && \count($form->getExtraData()) > 0) {

            $this->context->setConstraint($formConstraint);

            $this->context->buildViolation($config->getOption('extra_fields_message'))

                ->setParameter('{{ extra_fields }}', '"'.implode('", "', array_keys($form->getExtraData())).'"')

                ->setInvalidValue($form->getExtraData())

                ->setCode(Form::NO_SUCH_FIELD_ERROR)

                ->addViolation();

        }

*/

 

Pour moi ça a fonctionné. Gardez bien une copie des fichiers originaux avant modification.

David.

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

  • 4 months later...

Hello, Simplement pour partager un cas de figure sur PS 1.7.6.4  :
Un collaborateur upload une image comportant des accents sur une fiche produits.
Impossible de mettre à jour la fiche produit.
Affichage image buggué, impossible à supprimer.

Suppression de la fiche produit -> création d'une nouvelle fiche produit -> retour à la normale.
Je n'ai pas eu le temps de tester pour voir si il y a eu d'autres erreurs de type
Jeton (token) invalide.
Ni de corriger dans la base pour tester.

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

  • 2 months later...
5 minutes ago, cedib said:

Bonjour @david., j'ai testé votre solution et cela fonctionne. Par contre l'enregistrement des modifs sur un produit prend beaucoup beaucoup plus de temps. Est-ce en lien avec les modifications de code ou est-ce que ça pourrait être autre chose?

Merci

Bonjour @cedib

La lenteur n'est pas liée à la modification, car il désactive des choses, il n'en ajoute pas.

Je pense que c'est dû à l'hébergement lui même, j'ai constaté des grosses lenteurs sur le cluster 28, qui au départ tournait bien avec le sql privé.

Très franchement, si vous souhaitez héberger du prestashop chez ovh, il faudrait un VPS ou dédié avec plesk dessus, tout en acceptant que vous devrez attendre 10-15 jours en cas de soucis, à moins de prendre le support VIP.

Pour mes nouveaux prestashop je vais chez o.......h (pas ovh), étant donné que j'ai signalé le problème il y a plusieurs mois et qu'il n'est pas toujours pas résolu.

David.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...