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 28/09/2007, 23h51   #1
Invité régulier
 
Inscription : août 2007
Messages : 41
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 41
Points : 6
Points : 6
Par défaut [Sécurité] Sécuriser les GET dans un formulaire

Salut,

J'utilise un formulaire avec la méthode GET et je me demandais ce qu'il ne fallait surtout pas oublier pour sécuriser l'inscription des données et l'affichage des résultats. J'ai déja un parcouru les forums mais je n'ai pas envie de prendre de risques...

Merci d'avance!
s-c-a-r-a est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2007, 23h57   #2
Membre émérite
 
Avatar de sharrascript
 
Homme Franck
Développeur Web indépendant
Inscription : avril 2007
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Franck
Âge : 31
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web indépendant

Informations forums :
Inscription : avril 2007
Messages : 678
Points : 900
Points : 900
bonsoir,

Tout dépend des donnés qui transitent par le get.
Dans un premier temps, pour sécurisé un peu plus ("j'ai bien dit un peu") le mieux est de passer par la méthode post.

Sont-elles destinées à une base de données??

++
__________________
LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle
sharrascript est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2007, 23h58   #3
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
Bonjour,

En général on utilise la méthode POST dans les formulaires et GET dans les URLs.
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2007, 00h06   #4
Invité régulier
 
Inscription : août 2007
Messages : 41
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 41
Points : 6
Points : 6
Le problème c'est qu'avec mon formulaire en POST, je ne parviens pas à récupérer mes variables de pages en pages, donc j'ai opté pour le GET avec lequel je récupère tout via l'URL. Mais... c'est vraiment moins bien que POST ?
s-c-a-r-a est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2007, 00h12   #5
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
Sans doute parce qu'en POST tu récupères tes variables directement, or il faut utiliser la superglobale $_POST :

Code :
1
2
 
$_POST['le_nom_ta_variable'];
Encore un article à lire ici
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2007, 00h17   #6
Invité régulier
 
Inscription : août 2007
Messages : 41
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 41
Points : 6
Points : 6
Ok merci bien je vais aller lire ça, juste une question : j'ai lu que les superglobales n'étaient pas forcément activées dans le php et qu'elles posaient parfois des problèmes de sécurité c'est vrai ?
s-c-a-r-a est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2007, 00h25   #7
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
$_POST, $_GET, $_FILE et de nombreuses autres sont présentes depuis PHP version 4.1.0

Pour la sécurité, la directive register_globals devrait être à OFF (c'est à OFF par défaut depuis PHP 4.2.0 ) et tu devrais donc utiliser les superglobales ci-dessus.

Voir dans la DOC PHP -> Variables prédéfinies
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2007, 09h56   #8
Membre émérite
 
Avatar de sharrascript
 
Homme Franck
Développeur Web indépendant
Inscription : avril 2007
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Franck
Âge : 31
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web indépendant

Informations forums :
Inscription : avril 2007
Messages : 678
Points : 900
Points : 900
bonjour,

D'ailleurs un petit conseil si tu as ton register_globals à ON, n'appels jamais des variables de type différent du même nom.

exemple:
Code :
1
2
3
4
 
$_POST['var'];
$var;
$_SESSION['var'];
Ces trois variables seront les mêmes, donc bien faire attention, on peu avoir de mauvaises surprises parfois. C'est notamment pour cette raison qu'il a été mis à OFF.

++
__________________
LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle
sharrascript est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2007, 10h27   #9
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
De toute façon, quelle que soit la méthode utilisée pour récupérer des infos utilisateur (POST, GET, COOKIES...), il faut considérer qu'elles sont potentiellement corrompues et dangereuses. La méthode ne change rien à l'affaire : tu peux pirater un POST (presque) aussi facilement qu'un GET.
A faire donc : contrôler systématiquement toute donnée utilisateur (présence, format, taille, caractères...). Toujours échapper les valeurs avant enregistrement en bdd pour éviter l'injection SQL (par exemple avec mysql_real_escape_string() pour mysql). Toujours échapper les valeurs avant affichage, notamment pour réafficher le contenu d'un formulaire, par exemple après erreur (avec htmlentities() par exemple).

Dernière chose : les sessions sont à mon avis beaucoup plus efficaces pour un formulaire de plusieurs pages. En effet, tu n'as pas besoin avec elles de valider l'ensemble des données à chaque page, mais uniquement celles qui viennent d'être postées.
vg33 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 06h16.


 
 
 
 
Partenaires

Hébergement Web