XSS

Répondre
LupusMic
le 07/01/2005 à 02:55
LupusMic
Bonjour,

Il semblerait que le site, et surtout les forums, fassent trop confiance en le contenu des tableaux _GET et _POST (peut-être même _COOKIE tient ;) ).

En effet, si je note dans la barre d'adresse : http://3hphp.lephpfacile.com/forums/new_topic.php?f=4' and id='5

La variable id sera conservée durant ma navigation.

Donc j'ai deux requêtes :
1 - néttoyer les variables en entrées (toutes, _COOKIE inclu car on peut trafiquer leur contenu) ou refuser ce qui ne correspond pas au motif attendu.
2 - Ne plus donnéer d'exmple de codes qui font directement utiliser les valeurs des variables en entré.

Voilà, c'était mon second message pour me faire encore plus d'amis :)

++
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LA GLOBULE
le 07/01/2005 à 09:50
LA GLOBULE
smiley

Voilà, c'était mon second message pour me faire encore plus d'amis :)


Ce n'est pas ici qu'on te lynchera :)

En effet, si je note dans la barre d'adresse : http://3hphp.lephpfacile.com/forums/new_topic.php?f=4' and id='5

La variable id sera conservée durant ma navigation.


Oui, je vois de quoi tu parles.
La variable id sera conservée dans la navigation, mais si je regarde le code source du site, cela n'influencera pas sur le forum (a priori).

En effet, avant de poster sur un forum, je prend toujours le soin de tester le type de données attendu, et de lancer une petite requete SQL afin de vérifier si les paramètres qui arrivent au script sont "valides", c'est à dire si $_GET['f'] existe bien dans ma base de données (de meme pour $_GET['id'] dans le cas d'une reponse à un sujet, id etant le sujet).
Si la requete SQL ne donne aucun résultat (numero de forum inconnu dans la base, ou sujet inconnu dans la base, ou sujet qui ne correspond pas au bon forum), on tombe sur une page de ce genre :

http://www.lephpfacile.com/forums/read_msg.php?f=3&id=2928

Le probleme de la variable qui se conserve vient de l'affichage page par page (si tu regardes les news et que tu ajoutes un paramètre à l'URL celui la aussi sera conservé).
En effet, pour adapter ce script à toutes les pages possibles d'un site, je prend tous les parametres de l'URL, auxquels j'ajoute le parametres "debut" qui sert à faire mes LIMIT.

Alors c'est vrai que si l'on ajoute un parametre à l'URL, celui si se conservera tant que l'on ferra fonctionner le "page par page", et cela peut amener à des trous de sécurité si on ne fais aucun test (du moins sur les variables que l'on utilise).

En fait, le problème, c'est que j'analyse "que" les variables qui me sont necessaire au script, sans regarder si d'autres variables ont étées passé au script (ces autres variables se "balladant" mais n'étant pas utilisées).

Bref, pour finir :

Donc j'ai deux requêtes :
1 - néttoyer les variables en entrées (toutes, _COOKIE inclu car on peut trafiquer leur contenu) ou refuser ce qui ne correspond pas au motif attendu.
2 - Ne plus donnéer d'exmple de codes qui font directement utiliser les valeurs des variables en entré.


Je le ferais, promis :)
D'ailleurs en ce qui concerne les exemples, tous les cours sont en train d'etre refait :)
AlScafi
le 08/01/2005 à 05:23
AlScafi
j'ai pas saisi un truc là, si on enlève toute les variable passée en entrée (donc _GET, _POST etc...) on fait comment pour les pseudo frames etc ??? et même pour le forum ?
LA GLOBULE
le 08/01/2005 à 10:01
LA GLOBULE
AlScafi : il ne faut jamais faire confiance aux données que récupèrent tes scripts.

Les visiteurs peuvent "jouer" avec les paramètres et compromettre le fonctionnement de ton site.

Regarde cet article
LupusMic
le 10/01/2005 à 04:12
LupusMic
Je n'ai jamais dit qu'il fallait supprimer les variables, mais les nettoyer avant de les utiliser.

_GET, _POST et _COOKIE sont des légumes frais qu'il faut laver soigneusement ;)
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours