jeudi 23 mars 2006
Apache : De l'intérêt du mod_speling
Par Christophe, jeudi 23 mars 2006 à 02:47 :: Informatique
En compilant Apache 2.x (ou antérieur) avec l'option --enable-mods-shared=most, l'on installe d'un coup une vingtaine de modules quasiment indispensables à toute installation de test ou de production, tels que les mod_negotiation, mod_mime, mod_rewrite ou l'immortel mod_dir.
J'ai cependant été attiré par un module qui faisait "tilt" à chaque fois, mais dont je n'ai jamais eu le temps de jeter un coup d'oeil : le mod_speling.
Ce module désactivé par défaut (ajouter CheckSpelling on à .htaccess) se propose donc de résoudre magiquement les soucis d'écriture d'url, voyons son fonctionnement extérieur depuis telnet (en considérant que j'ai une vraie page /phpinfo.php) [1]:
GET /phpinfo.ph HTTP/1.0 HTTP/1.1 301 Moved Permanently ... Location: http://localhost/phpinfo.php
et ceci pour /phinfo.php, /phpinf0.php, etc... L'erreur 301 est transparente pour l'internaute, il est directement redirigé. Ensuite nous avons :
GET /phpinfo.p555hp HTTP/1.0 HTTP/1.1 300 Multiple Choices
...sans oublier un magnifique 404 pour /phpindafo.phpda.
Bien.
C'est pas pour casser l'ambiance, mais je vois déjà trois soucis majeurs ici :
- Il suffit de consulter ses stats pour voir la masse d'erreurs 404 que l'on a habituellement à gérer, entre les requêtes des navigateurs à la recherche de /favicon.ico, de liens périmés ou autre. Il faudrait donc appliquer un test d'existence de fichier en testant chaque caractère, petit à petit. Et non, les réponses du genre
ouais mais j'ai un sextuple-xeon qui a faim, tu chipottes là !
ne tiennent pas la route ; l'admin/développeur est payé pour chipotter (ce qui explique d'ailleurs pourquoi il n'est pas activé chez les hébergeurs mutualisés). - Cela invite à mal faire, et créera surement à grande échelle des phénomènes tels qu'il nous faudrait (encore) 10 ans pour en défaire les internautes
- Vous la voyez l'erreur
300 Multiple Choices? Eh bien imaginez que vous avez malencontreusement oublié de vraiment protéger un répertoire sensible, en y ajoutant juste un fichier d'index pour empêcher le listing, eh bien vous voyez clairement à quoi vous vous exposez...
Même sans une heure de recul, je ne vois pas une seule bonne excuse d'utiliser ce module, je vous conseille donc de ne pas l'installer/activer.
Notes
[1] Note: les requêtes sont envoyées en utilisant la version 1.0 du protocole HTTP, car HTTP/1.1 nécessite l'envoi de l'hostname.
:: aucun commentaire ::
