begin process at 2012 05 31 10:25:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Débutants

 > 

Sécurité et champ HIDDEN dans les formulaires


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Sécurité et champ HIDDEN dans les formulaires

lundi 14 novembre 2005 à 14:59:23 | Sécurité et champ HIDDEN dans les formulaires

alaise

Bonjour,

J'ai lu qui'l était déconseillé de mettre des champs HIDDEN dans les formulaires point de vue sécurité.

Je souhaiterai savoir ce qu'il faut utiliser pour remplacer cette méthode ?

Merci
lundi 14 novembre 2005 à 15:11:59 | Re : Sécurité et champ HIDDEN dans les formulaires

J_G

Salut


!!!???!!!

Les champs HIDDEN ne doivent pas être utilisé pour faire de la sécurité, ça d'accord.

En règle générale, tout ce qui viend de l'extérieur du serveur doit être considéré comme suspicieux !

Comme faire alors ???
Place les données importantes dans les variables de session (donc sur ton serveur)
Puis, demande à l'utilisateur de bien prouver son identité avant de pouvoir accéder à ces données
Par, exemple certaine info par cookie
* identifiant de session
* Adresse IP du client
* pourquoi pas un autre ID en md5 (par exemple le login)
* pourquoi pas la date de la dernière action + un clef (codé en md5 toujours)
* pourquoi pas...

Si toutes ces info correspondent à une session ouverte, alors OK.


Il y'a certainement mieux... mais bon c'est déjà ça !
lundi 14 novembre 2005 à 15:33:05 | Re : Sécurité et champ HIDDEN dans les formulaires

alaise

Salut,

Merci pour les infos mais j'aimerai que tu m'éclaircisses sur un petit point quand même.

Si j'ai besoin d'un identifiant pour modifier un formulaire par une requête, cet identifiant par exemple id_adresse je ne peux pas le mettre dans un champ hidden.

Je le passe où alors ?

lundi 14 novembre 2005 à 15:59:10 | Re : Sécurité et champ HIDDEN dans les formulaires

J_G

Regardons comment fonctionne ce site...

Quand je demande à voir les cookies le concernant, j'obtiend ça :

NameASP.NET_SessionId
Value/* clef unique de 32 caractères hexa */
Hostwww.phpcs.com
Path/
SecureNo
ExpiresAt End Of Session
NameUID
Value/* Une autre clef encore plus étrange */
Hostwww.phpcs.com
Path/
SecureNo
Expires25.10.2015 11:03:29


Principe ?
Lors de mon identification, phpcs a posé deux cookies sur mon ordi.
L'un est posé automatiquement par Apache quand tu fais session_start() (au sommet de tes scripts !!!).
L'autre est à envoyé explicitement grâce à la fonction "set_cookie()" (au sommet de tes scripts !!!).

A chaque fois que mon navigateur demande une page à affichée (ici : http://www.phpcs.com/forum.v2.aspx?ID=599910), il envoi les info de ces deux cookies...
Le premier sert à retrouver les info de session. C'est l'identifiant !!!
Le deuxième sert à confirmer un clef contenu dans les variable de session. C'est le mot de passe !!!

Si les deux correspondent, c'est OK

Comment ?
------------------- tous tes script PHP commence par ça ---------
<?php // Aucun caractère avant !!!
$nom_session = 'ASP.NET_SessionId'; // pour le cas présent
session_start($nom_session);
if( !isset($_COOKIE[$nom_session]) )  Pas bon;
if( !isset($_COOKIE['UID']) )  Pas bon;
if( session_name() != $nom_session ) Impossible mais on sait jamais;
if( session_id() != $_COOKIE['PHPSESSID'] ) Pas bon;
if( $_SESSION['cookie_pass'] != $_COOKIE['UID'] = Pas bon;

Là c'est bon;


------------- Bien sûr lors de l'identification tu fait -------
<?php // Aucun caractère avant !!!
$nom_session = 'ASP.NET_SessionId'; // pour le cas présent
session_start($nom_session);
$clef = md5(uniqid('UID'.rand(time()), true)); // quasi impossible à prédire...
set_cookie('UID', $clef); // pose la clef sur client
$_SESSION['UID'] = $clef; // pose la clef sur serveur




Je te laisse méditer là dessus...

A+
lundi 14 novembre 2005 à 16:03:20 | Re : Sécurité et champ HIDDEN dans les formulaires

J_G

PS :

par "Pas bon;" j'entends : redirection vers une page hors connexion ou affiche un message ou ...

par "Là c'est bon;" :  tu peux continuer avec ton script... La personne soumettant le formulaire à prouvée son identitée.



!!!! n'oublie pas d'échapper les données provenant du formulaire  pour éviter l'injection SQL !!!!

lundi 14 novembre 2005 à 16:05:00 | Re : Sécurité et champ HIDDEN dans les formulaires

alaise

Merci, ça va m'être très utile.

Et effectivement, je vais méditer sur ta réponse.
lundi 14 novembre 2005 à 16:09:57 | Re : Sécurité et champ HIDDEN dans les formulaires

J_G

if( session_id() != $_COOKIE[$nom_session] ) Pas bon;


1000 excuses + 1
lundi 14 novembre 2005 à 21:02:34 | Re : Sécurité et champ HIDDEN dans les formulaires

FhX

"J'ai lu qui'l était déconseillé de mettre des champs HIDDEN dans les formulaires point de vue sécurité." C'est pas que c'est déconseillé, c'est juste que si tu vérifies pas, tu peux te faire autant baiser que n'importe quel autre champ.


Faut juste vérifier c'est tout !
mardi 15 novembre 2005 à 09:28:00 | Re : Sécurité et champ HIDDEN dans les formulaires

malalam

Administrateur CodeS-SourceS
Et puis, il suffit de regarder la source html de la page pour voir ce que contient le champ.
mardi 15 novembre 2005 à 12:39:40 | Re : Sécurité et champ HIDDEN dans les formulaires

FhX

Nan mais si c'est pour faire passer un ID de session, y'a aucun problème la dessus.

1 2

Cette discussion est classée dans : champ, sécurité, formulaires, hidden


Répondre à ce message

Sujets en rapport avec ce message

Sécurité [ par thebigbang ] Bonjout,Je suis webmaster et je voudrais sécurisé, enfin c'est une facon de parler, un peu plus mon site ...il conmporte un dossier "admin" et lorsque Récupération de champ dans un formulaire [ par alainG ] J'ai créé un formulaire pour ajouter un enregistrement dans une table. >Insère un licencié</title&gt pb sur mysql avec requete select * from TABLE IN (select ...) [ par malibu23 ] Salut j ai un pb sur mysql lorsque je fais un requetedu type select CHAMP from TABLE where CHAMP IN ( select CHAMP from TABLE where CHAMP = VARIABLE); Syntaxe entre accolade [ par apz ] Salut,Souvent dans des sources php, on trouve la syntaxe suivante :{$rows['champ']} entre accolade {} quand on veut recupérer une valeur d' recuperer le contenu d'une table sur dd [ par oggy ] Salut à tous !Alors voilà, j'ai un problème depuis quelques jours que je n'arrive pas à résoudre.J'ai dans ma base de données une table avec un champ EMail [ par BSide ] Bonjour,je construis dynamiquement en PHP un tableau avec des données provenant d'une base Mysql.Parmi ces données se trouve un champ concernant l'ema probleme de mise en forme d'une base sql [ par stick059 ] voila, j'ai un pb avec sql :J'ai une base de donnée de film.Dans cette base, il y a plusieurs champ acteurs, exemple :si un film comporte 3 acteurs, j Masquer un champ ??? [ par rich25200 ] Comment fait-on pour masquer un champ de type input type='text' ???merciPS je sais qu'il existe disabled mais je veux que l'utilisateur ne le voit pas Récuperer valeur ??? [ par rich25200 ] Bonjour,dans mon formulaire j'ai un champ de type hidden qui ne permet pas à l'utilisateur de modifier ccette valeur...et je veux récuperer cette vale valider une date saisie dans un champ avec la date de la machine [ par cba ] cbaje rentre une date dans un champ d'un formulaireex on est le 05/04/03 (date machine)je saisis dans le formulaire la date 060403 ce champ correspon


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales