Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/11/2006, 22h13   #1
Inscrit
 
Inscription : juin 2006
Messages : 531
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 531
Points : 225
Points : 225
Par défaut [Securité] Est-ce utile de filtrer une variable ni affichée ni insérée en BD

Bonjour,

- Admettons que vous avez un formulaire avec x champs.
- Le formulaire renvoit sur la même page.
- Sur cette page, vous testez la présence de la variable 'valider' issue de l'attribut "name" du bouton submit.
- Si cette variable est présente, vous déclenchez le script, puisque le formulaire a été soumis.
- Bien sûr vous filtrez toutes les entrées du formulaires, avec les expregs ou mysql_real_escape_string().

Mais la variable 'name' du bouton submit, est-ce utile de la "filtrer" ?
Pour moi non, puisqu'elle ne sert qu'à déclencher le script et n'est pas inclue dans la base de donnée et sa valeur n'est affichée nul part.
On ne teste que sa présence.

Qu'en pensez-vous ?
JackBeauregard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/11/2006, 23h17   #2
Membre chevronné
 
Avatar de Elwyn
 
Homme
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 836
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux

Informations forums :
Inscription : juillet 2006
Messages : 836
Points : 712
Points : 712
Ben non (si t'es en mode POST) dans ce cas un simple if(isset($_POST['valider'])) suffit, si t'es en GET la par contre filtre la
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ...
Elwyn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/11/2006, 23h54   #3
Inscrit
 
Inscription : juin 2006
Messages : 531
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 531
Points : 225
Points : 225
Oui je suis en mode POST et je fais comme tu dis.
Cela changerait quoi en mode GET ? Elle s'afficherait dans l'URL et le gars pourrait en profiter pour modifier sa valeur et expédier une requête SQL en rechargeant la page ? Qu'est-ce qui l'empêche de le faire en POST, puisque dans les deux cas, la variable n'est ni affichée ni envoyée en BD ?
JackBeauregard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2006, 00h13   #4
Membre émérite
 
Avatar de alain31tl
 
Alain
Inscription : novembre 2005
Messages : 897
Détails du profil
Informations personnelles :
Nom : Alain
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : novembre 2005
Messages : 897
Points : 910
Points : 910
Citation:
Envoyé par JackBeauregard
Oui je suis en mode POST et je fais comme tu dis.
Cela changerait quoi en mode GET ? Elle s'afficherait dans l'URL et le gars pourrait en profiter pour modifier sa valeur et expédier une requête SQL en rechargeant la page ? Qu'est-ce qui l'empêche de le faire en POST, puisque dans les deux cas, la variable n'est ni affichée ni envoyée en BD ?
Tu parles de qui là, de toi ou des autres ?
Si tu veux essayer en Get, qui t'en empêche et de vérifier si c'est falsifiable ?
Ca te prend 1 minute pour modifier tes sources.
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.
alain31tl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2006, 00h30   #5
Inscrit
 
Inscription : juin 2006
Messages : 531
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 531
Points : 225
Points : 225
Je n'ai rien compris à ta réponse, tu n'as donc sans doute rien compris à ma question, mais c'est pas grave.
JackBeauregard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2006, 16h22   #6
Membre chevronné
 
Inscription : mai 2005
Messages : 657
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 657
Points : 722
Points : 722
Salut,

Si tu testes juste la présence de la variable (isset) et que tu n'utilises nulle part son contenu, ça ne sert a rien de la filtrer évidement



Citation:
Envoyé par Elwyn
si t'es en GET la par contre filtre la
Non, non et re-non : GET/POST(/COOKIE) même combat, les données sont envoyées par l'utilisateur et il peut y mettre ce qu'il veut.
Taum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2006, 21h10   #7
Membre chevronné
 
Avatar de Elwyn
 
Homme
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 836
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux

Informations forums :
Inscription : juillet 2006
Messages : 836
Points : 712
Points : 712
Bref on s'en fou dans tous les cas tu demandes si la variable du submit est presente, si le mec s'eclate a la changer via l'adresse, elle n'est pas reconnue est basta. C'est tout. T'embetes pas avec tout ca

Et Taum imagine il demande if(isset($_GET['variable']) AND $_GET['variable'] == "submit"){ alors si l'utilsateur la change ca bug, mais qui irait faire ca oO
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ...
Elwyn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2006, 21h46   #8
Inscrit
 
Inscription : juin 2006
Messages : 531
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 531
Points : 225
Points : 225
Imaginons la chose suivante :

- J'ai un formulaire avec la méthode GET.
- L'attribut name du bouton submitt est "valider".
- Après la validation, je test if(isset($_GET[valider]));

Ici $_GET['valider'] ne sert à rien d'autre qu'à vérifier que le formulaire est posté.
Toutes les autres valeurs du formulaires sont filtrées, puisqu'elles sont incluses.


Qu'est-ce qui empêche ici le pirate de trafiquer dans l'URL la valeur de $_GET['valider'] pour y entrer une requête sql afin de faire une injection ?
JackBeauregard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2006, 19h51   #9
Membre Expert
 
Eleveur de cornichons
Inscription : juin 2002
Messages : 1 060
Détails du profil
Informations personnelles :
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Eleveur de cornichons
Secteur : Finance

Informations forums :
Inscription : juin 2002
Messages : 1 060
Points : 1 040
Points : 1 040
Citation:
Qu'est-ce qui empêche ici le pirate de trafiquer dans l'URL la valeur de $_GET['valider'] pour y entrer une requête sql afin de faire une injection ?
Personne ne peut l'empêcher de taper le code dans l'adresse. C'est ton code PHP qu'il faut sécuriser pour qu'il bloque ce genre d'attaques. Il existe sur le net pas mal de docs sur les SQL injections et notamment comment se protéger.

Nas'
Nasky est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2006, 08h25   #10
Membre chevronné
 
Avatar de Dia_FR
 
Homme Aurélien
Développeur Web
Inscription : avril 2006
Messages : 510
Détails du profil
Informations personnelles :
Nom : Homme Aurélien
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 510
Points : 643
Points : 643
les injections SQL c'est possible que si la variable qui est trafiquée est envoyée à la BdD

si tu fais que tester l'existence d'une valeur, tu t'en contrefous de son contenu par rapport à tes requêtes SQL
__________________
Dia [ Page DVP ] [ Blog ] [ Site pro ]
Dia_FR est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h11.


 
 
 
 
Partenaires

Hébergement Web