Mephivio Posted February 4, 2010 Share Posted February 4, 2010 Bonjour,Si je regarde la rubrique Erreurs d'exploration des outils Google Webmaster Tools, je constate un grand nombre d'erreurs 404 de type :http://www.monsite.fr/AUog1AJtj8=8AJPHb8W2nI=GzK+0FHqvwQ=WaOLMH9tKnE=Une idée ?D'ou cela peut-il provenir ?Précision : je suis en PS 1.2.5Merci Link to comment Share on other sites More sharing options...
allobambin Posted May 9, 2010 Share Posted May 9, 2010 BonjourJe réponds à ce post car j'ai pas mal cherché sur le forum la cause de ces 404.Peut-être que ce début de solution pourra aider...Le problème vient du module statsdata et concerne le code suivant (si ce module est activé) : [removed] var time_start; $(window).load( function() { time_start = new Date(); } ); $(window).unload( function() { var time_end = new Date(); var pagetime = new Object; pagetime.type = "pagetime"; pagetime.token = "BarLpDDRssI=wMWE7WRXfhY=YipPvIhjAcY=E1TjZN+lVFk="; pagetime.time = time_end-time_start; $.post("http://www.allobambin.com/statistics.php", pagetime); } ); [removed] Le pagetime.token est valorisé avec le résultat du cryptage blowfish prenant enparamètre entre autre l'identifiant de la page. Il s'avère que pour certainsparamètres, le blowfish retourne une chaîne contenant un '/'. Du coup, dans lecode javascript généré, on se retrouve avec quelque chose du genre pagetime.token = "vqG9o/AaGU=LUM0dH4Gd1Y=qdrWuMcW2MY=L8jQuOnAmqw=" par exemple.L'id_page joue un rôle prépondérant dans l'algo du blowfish car ce sont toujoursles mêmes pages qui génèrent un token avec '/'. Et bien évidemment, plus le nombrede produits augmente, plus les risques de token avec '/' augmentent également.Après quelques recherches rapides, je n'ai pas poussé plus loin, googlebotanalyse ce token contenant un '/' comme une url. A cause du '/', il analyse celacomme un chemin sur le site.J'avoue quelques lacunes dans les fonctions php à utiliser pour encoder le tokende façon à ce qu'il ne soit pas interprété comme une url lorsqu'il contient un'/', j'ai tenté le urlencode suivi de urldecode mais cela n'a rien changé quant à l'interprétation de googlebot => 404 en constante progression. Je suis monté à une petite centaine d'erreur 404 Not Found dans le google webmaster.Plus de temps à perdre donc, j'ai mis en place malgré moi cette correction inélégantemais qui a le mérite de fonctionner, le temps que lors d'un prochain merge prestashop,je constate que la correction "propre" a été apportée ;o).Dans modules/statsdata/statsdata.php, remplacer : // Ajax request sending the time spend on the page $token = $blowfish->encrypt($tokenArray['id_connections'].'|'.$tokenArray['id_page'].'|'.$tokenArray['time_start']); Par : // Ajax request sending the time spend on the page $token = str_replace('/', 'UNE_CHAINE_QUI_N_A_AUCUNE_CHANCE_DE_FIGURER_DANS_LE_BLOWFISH', $blowfish->encrypt($tokenArray['id_connections'].'|'.$tokenArray['id_page'].'|'.$tokenArray['time_start'])); Et dans statistics.php, remplacer : $blowfish = new Blowfish(_COOKIE_KEY_, _COOKIE_IV_); $token = $blowfish->decrypt($_POST['token']); Par : $blowfish = new Blowfish(_COOKIE_KEY_, _COOKIE_IV_); $token = str_replace('UNE_CHAINE_QUI_N_A_AUCUNE_CHANCE_DE_FIGURER_DANS_LE_BLOWFISH', '/', $blowfish->decrypt($_POST['token'])); Ensuite, il ne reste plus qu'à récupérer les 404 dans le google webmaster et de les insérer dans le .htaccess sous la forme :Redirect 410 /vqG9o/AaGU=KDa5HzzUirA=bWn1DKsKASo=5nSVjozkppk=La diminution du nombre de 404 a été spectaculaire en ce qui me concerne.Johan Link to comment Share on other sites More sharing options...
Raph59 Posted May 9, 2010 Share Posted May 9, 2010 Bonjour Je n'avais jamais pensé à ca et tu doit surement avoir raison!Selon moi pour que le token soit pris pour un lien par google, il faut même que ce soit le premier caractère qui soit un /En revanche ta solution me fait un peu peur car tu modifie le token et donc j'imagine que celui ne sera pas correctement "décodé", ou peut être que si, mais encore faut t'il trouver le caractère qui n'as aucune chance d'être utilisé par le blowfish?J'ai donc pensé a une autre solution! Tu me dira ce que tu en penses... En revanche je l'applique dès ce soir donc attention à vos risque et péril si vous souhaitez la tester dès maintenant sans mon retour d'expérience...je n'expliquerai pas en détails mais juste le principe, et si ca fonctionne je détailerai pour en faire profiter les autres.en fait je rajoute /stats/ devant les 2 token dans statsdata.php, puis je fait un str_replace de "/stats/" à "" dans statistique.php juste avant de le décoder.Je vais maintenant dans mon robots.txt et j'ajoute "Disallow: /stats/"Donc maintenant à tout les coup mon token est pris comme un lien par google, mais je dit dans mon robots.txt de ne pas suivre ce lien... Link to comment Share on other sites More sharing options...
allobambin Posted May 10, 2010 Share Posted May 10, 2010 BonjourOulah !! N'importe quoi moi !Grosse erreur dans mon post, merci pour ton message qui me fait prendreconscience de cela.Dans statistics.php, il faut bien sûr appliquer le str_replace sur la variable postée token avant del'envoyer au blowfish soit $token = $blowfish->decrypt(str_replace('UNE_CHAINE_QUI_N_A_AUCUNE_CHANCE_DE_FIGURER_DANS_LE_BLOWFISH', '/', $_POST['token'])); Et SURTOUT pas : $token = str_replace('UNE_CHAINE_QUI_N_A_AUCUNE_CHANCE_DE_FIGURER_DANS_LE_BLOWFISH', '/', $blowfish->decrypt($_POST['token'])); L'encodage se fait après le blowfish tandis que le décodage se fait avant.A priori, pas de soucis même si le token est modifié car il est remis d'équerre juste avant son traitement dans statistics.php.Comme chaîne, j'ai mis ALLO, peu de chances que le blowfish renvoie ça et au pire si quelque chose ne fonctionne pas, ce sont des stats de perdues, moins préjudiciables que des 404 je pense.Pour l'analyse de google, je pensais aussi qu'il fallait que le token commence par un '/' mais en suivant les liens indiqués dans le google webmaster (au bout d'un certain temps car le token varie en fonction d'autres paramètres que l'id_page) j'ai pu constater qu'un token avec un '/' en plein milieu provoquait aussi un 404.Astucieux la solution avec le robots.txt ;o).Cela devrait fonctionner je pense.Johan Link to comment Share on other sites More sharing options...
Raph59 Posted May 10, 2010 Share Posted May 10, 2010 Finalement j'ai préférais opter pour ta solution en mettant la chaine AAAAAAAAAA, ainsi il ne devrai pas y avoir de problème J'ai peur qu'en créant systématiquement un lien même avec un acces interdit dans mon robot ne soit pas la meilleur solution, ca fait tout de même un lien avec une erreur 404...Bref en tout les cas merci d'avoir réglé ce "vieux" problème, car j'avous que vue le peu de réponse que j'avais eu à l'époque et ne trouvant pas la solution, j'avais mis de coté ce problème! Link to comment Share on other sites More sharing options...
allobambin Posted May 10, 2010 Share Posted May 10, 2010 Attention, il ne faut pas mettre une chaîne ne contenant que des caractères identiques !C'est ce que j'avais fait machinalement au début ).J'avais mis "9999".Le problème avec les "AAAA" c'est si tu as un token du style "0xlytrsd324A/fdffdg" c'est à dire un A avant le '/'(ou plusieurs A consécutifs avant ou après).Le premier str_replace fonctionnera car tu remplaceras bien le '/'.Par contre, celui du statistics.php qui fait l'opération inverse sera erroné car il commencera à une position trop tôt.Arf, et à coup sûr, il y a une fonction php qui existe pour protéger le token du googlebot...Bonne journée.Johan Link to comment Share on other sites More sharing options...
Raph59 Posted May 10, 2010 Share Posted May 10, 2010 En effet tu as raison, merci!Je vais donc utiliser "STATS" ca devrais aller....Encore merci en tout les cas d'avoir partagé ta découverte, je me sentais très seul face à ce problème Link to comment Share on other sites More sharing options...
Fluorite Posted June 13, 2010 Share Posted June 13, 2010 Salut à vousje n'avais jamais fait attention, mais il m'arrive d'avoir exactement le même problème, serait'il possible de nous décrypter tout cela pour que 'l’on puisse faire les modifications. ;-) Merci beaucoup par avance.bonne soirée Link to comment Share on other sites More sharing options...
allobambin Posted June 15, 2010 Share Posted June 15, 2010 BonjourEn gros, pour solutionner temporairement ce problème (le temps que la version de base de prestashop intègre une solution), il suffit de remplacer 2 lignes de code dans 2 fichiers différents.Je me base sur la version 1.3.1 pour les n° de ligne, c'est la dernière à ce jour il me semble.Dans le fichier modules/statsdata/statsdata.php, repérer la ligne 80 : $token = $blowfish->encrypt($tokenArray['id_connections'].'|'.$tokenArray['id_page'].'|'.$tokenArray['time_start']); La remplacer par : $token = str_replace('/','STATS',$blowfish->encrypt($tokenArray['id_connections'].'|'.$tokenArray['id_page'].'|'.$tokenArray['time_start'])); Dans le fichier statistics.php, à la racine, repérer la ligne 19 : $token = $blowfish->decrypt($_POST['token']); La remplacer par : $token = $blowfish->decrypt(str_replace('STATS', '/', $_POST['token'])); La chaîne "STATS" (choisie par Raph59) peut être remplacée par n'importe quoi du moment qu'il n'y a pas de "/" et que ce n'est pas une suite de caractères identiques. BOBY fonctionnerait très bien par exemple.Ensuite, il faut renseigner le .htaccess avec les 404 Not found trouvés dans le Google Webmaster Tools comme je l'indiquais dans le post précédent.Bonne journée.Cordialement.Johan Link to comment Share on other sites More sharing options...
Fluorite Posted June 15, 2010 Share Posted June 15, 2010 Bonjourmerci beaucoup pour les explications.J’avais fait cela, mais comme je n'en étais pas vraiment sur ça confirme bien ce que j'ai remplacé. d'ailleurs chaque jour j'avais une erreur de se type, aujourd'hui zéro bonne soirée a vousYannick Link to comment Share on other sites More sharing options...
misty Posted June 27, 2010 Share Posted June 27, 2010 J'avais posé la question il y a plus d'un an sur le forum mais à l'époque personne n'avait trouvé.Merci pour la résolution de ce problème qui existe depuis le début, je viens de rentrer le bug dans le Bug Tracker :http://www.prestashop.com/bug_tracker/view/4856 Link to comment Share on other sites More sharing options...
misty Posted July 1, 2010 Share Posted July 1, 2010 Bonne nouvelle, Damien vient de corriger le bug, il n'y aura donc plus ce problème en version 1.3.2 Link to comment Share on other sites More sharing options...
jpdp Posted October 22, 2010 Share Posted October 22, 2010 Bonjour, Tout d'abord un grand merci à vos interventions sans lesquelles les néophytes dont je fais partie seraient quelque peu voir plus perdu. J'ai lu avec beaucoup d'intérêt vos interventions suite aux multiples 404 que google m'indique.J'ai bien compris la procédure mis à part celle du fichier htacess.Serait il possible d'avoir un exemple ? erreur google --> code fichier ? Merci Link to comment Share on other sites More sharing options...
celine37 Posted November 5, 2010 Share Posted November 5, 2010 Bonjour, J'ai bien compris la procédure mis à part celle du fichier htacess.Serait il possible d'avoir un exemple ? erreur google --> code fichier ? Bonjour,Voici un exemple : ton webmaster tool affiche une URL introuvable de type :http://www.tonsite.com/HxWsRqibtW=VsCUy/EYfXM=5A9rOLyqanU=/1ttf7KOa7X= Il se suffit alors de modifier ton htaccess en ajoutant chaque URL introuvable comme suit : Redirect 410 /HxWsRqibtW=VsCUy/EYfXM=5A9rOLyqanU=/1ttf7KOa7X= Redirect 410 /2èmeURL ... Link to comment Share on other sites More sharing options...
ceriz Posted November 5, 2010 Share Posted November 5, 2010 Salut, Savez pourquoi certaine redirection me créer une erreur 500? d'autre fonctionne toujours après la redirection. et quand j'envoi mon paquet entier de redirection c'est a dire plus de 100 j'ai encore l'erreur 500. Par contre quand je les rentres une à une nickel... (le .htaccess aime nous faire perdre du temps !!! ) Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now