Erreur troublante

Erreur troublante - PHP - Programmation

Marsh Posté le 09-09-2006 à 01:21:13    

Salut
 
En consultant un bon paquet de page j'ai été surpris par ceci
 

Code :
  1. //pour un get numerique
  2. $id = (int)$_GET['id'];
  3. //du filtrage inutile comme is_numeric ou ==


 
Pour $_GET['id']=1;'xxx on arrive sur la meme page que pour un $_GET['id']=1
 
illustration sur HFR

Code :
  1. http://forum.hardware.fr/hardwaref [...] ooooo'.htm
  2. //renvoie sur la meme page que
  3. http://forum.hardware.fr/hardwaref [...] ujet-1.htm


 
Bien entendu cela est innofensif ( on ne retrouve pas le 'yoooooo' dans les sources HTML ).
 
J'aimerais filtrer definitivement ce type d'url qui m'affole plus qu'autre chose.
 
Des idées ?

Reply

Marsh Posté le 09-09-2006 à 01:21:13   

Reply

Marsh Posté le 09-09-2006 à 09:58:39    

Quelle est la question ?
 
Q1 : Est-il correct d'un point de vue syntaxique de trouver un point virgule dans une URL ?
R1 : Oui. Voir les RFC 2396, 2616, et 3986.
 
Q2 : A quoi sert le point virgule dans une URL ?
R2 : Il sert à indiquer des paramètres derrière le point virgule.
Mais cette méthode est beaucoup plus rarement utilisée que l'autre méthode consistant à utiliser le point d'interrrogation et les esperluettes.
 
Q3 : Comment filtrer une URL
R3 : Avec une boucle pour saussiçonner (parser) les éléments d'une URL, ou avec substring, indexof, ou d'autres fonctions du langage du serveur.
 
Q4 : Est-ce que tous les logiciels traitent de la même manière les URL qui contiennent des point virgules ?
R4 : Non. Par exemple, le comportement de Tomcat est un peu particulier. Voir http://www.mail-archive.com/dev@to [...] 10491.html

Reply

Marsh Posté le 09-09-2006 à 13:49:12    


 
Donc si je comprend bien tant qu'il s'agit d'une URL valide il devient inutile de faire un traitement supplémentaire pour la nettoyer.
 
Elle apparaitra ainsi dans les logs n'est ce pas .
 
Il s'agit plus d'un probleme de Register globlas dans ce cas ...
 
Merci pour ses infos !


Message édité par supermofo le 09-09-2006 à 13:49:24
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed