Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1027 connectés 

  FORUM HardWare.fr
  Programmation

  [PHP] - Sécurité des informations

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] - Sécurité des informations

n°114939
Cherrytree
cn=?
Posté le 20-03-2002 à 14:06:21  profilanswer
 

Salut à tous.
 
Je me pose une question de conception. PHP n'est pas un langage dont je maîtrise toutes les facettes mais que j'utilise volontiers parce qu'il est simple et puissant.
 
En particulier pour saisir une paires de valeurs (login, password) dans un formulaire HTML, il est le roi. Dans mes formulaires, j'utilise la méthode GET, mais l'inconvénient est que les variables apparaissent en clair dans l'url (dont le fameux password). C'est pas acceptable.
 
1. Est-ce qu'avec POST, je peux récupérer les variables pareil qu'avec GET (syntaxe dans le script de récupération...) ? Est-ce sécurisé ?
 
2. Quels risques a t'on si l'on passe le login et le password par GET ?
 
3. Quelle est la bonne méthode, celle qui prime par exemple sur un forum sérieux comme HFR ? Hachage ? Autre ?

mood
Publicité
Posté le 20-03-2002 à 14:06:21  profilanswer
 

n°114946
ethernal
Chercheur de vérité...
Posté le 20-03-2002 à 14:13:48  profilanswer
 

1. il n'y a pas de sécurité dans un formulaire... Post n'affiche pas les infos envoyées dans l'url. la syntaxe est la même.  par après tu peux utiliser $HTTP_POST_VARS["non_var"] pour être sûr que la donnée provient bien d'un formulaire et n'a pas été passée dans l'url.
 
2. quelqu'un qui a accès au log le verra dans l'url d'accès d'après ce que tu as dit. idem pour les sauvegardes par les navigateurs (liste déroulante des urls accédées par IE)
 
3. hfr n'est pas bien "protégé", le login et pwd sont envoyés avec chaque essage que tu envoies...
un bon procédé est l'utilisation des sessions + une table des sessions, éventuellement couplé à un cookie pour ne pas devoir réencoder le login + pwd chaque fois.  Le but étant d'envoyer le moins de fois possible le login+pwd pour éviter toute interception de ces données sensibles.

n°114948
matafan
Posté le 20-03-2002 à 14:20:57  profilanswer
 

Tu peux utiliser POST sans problèmes, ça ne change rien au code. C'est déja bien mieux que GET (qui n'est absolument pas adapté à cet usage) pour ce ce que tu veux faire, mais on ne peut pas dire que c'est "sécurisé" : l'information circule toujours en clair. Par contre pour la voir il faut quand même sniffer, alors qu'avec GET il n'y a qu'à regarder par dessus l'épaule.
 
Sinon un façon simple de faire les choses vraiment bien, c'est de passer par SSL. Mais c'est de la configuration au niveau du serveur HTTP, pas au niveau de ton code PHP.

 

[jfdsdjhfuetppo]--Message édité par Matafan--[/jfdsdjhfuetppo]

n°114953
Cherrytree
cn=?
Posté le 20-03-2002 à 14:26:39  profilanswer
 

Donc dans un premier temps, pour amener un semblant de sécurité dans mes scripts d'authentification, il faut que je passe en POST. Bien, c'est déjà mieux.
 
Ensuite, j'irais voir sur la doc ce que je peux apprendre de $HTTP_POST_VARS. Je connais pas bien le système des variables globales (mis à part celles que je crée moi même).
 
Enfin, il faut que j'apprenne les sessions. En somme si j'ai bien compris, j'envoie une fois login et password et après tant que la variable de session est valable, c'est cet identifiant que j'utilisise, un peu comme un équivalent-password mais pour une durée donnée.

n°114961
ethernal
Chercheur de vérité...
Posté le 20-03-2002 à 14:39:14  profilanswer
 

tout à fait en gros c ça :)
 
les variables globales, c'est bidon, comme tu peux le voir ;)
 
oui,
- ou bien tu demandes le login+pwd une fois à chaque connexion,  
- ou bien tu le stockes dans un cookie et tu le rapatries si la session de l'utilisateur ne se trouve pas dans la table des sessions et dans ce cas tu crées une entrée dans cette table..
Les variables de sessions t'intéresseront aussi très certainement.

n°115011
Cherrytree
cn=?
Posté le 20-03-2002 à 15:37:15  profilanswer
 

Une dernière question (jusqu'à la prochaine, hein !) : un cookie est un fichier texte. Est-ce que le format du fichier texte est libre, ou bien un cookie a t-il toujours la même structure ?

n°115044
Tentacle
Posté le 20-03-2002 à 16:04:52  profilanswer
 

Cherrytree a écrit a écrit :

Une dernière question (jusqu'à la prochaine, hein !) : un cookie est un fichier texte. Est-ce que le format du fichier texte est libre, ou bien un cookie a t-il toujours la même structure ?  




 
ce n'est pas toi qui en détermine la structure, normalement tu dis quelles clé/valeurs tu veux y stocker, le navigateur les enregistre et te les renvoie à chaque fois qu'il est sur une page de ton site.

n°115143
Cherrytree
cn=?
Posté le 20-03-2002 à 17:48:59  profilanswer
 

OK merci beaucoup.

n°115167
alien_nan
Posté le 20-03-2002 à 18:14:30  profilanswer
 

une petite remarque : tu peux creer une petite page qui regarde si les elements login et password existent dans ta session. Si ils n'existent pas, tu rediriges vers ta page de login.
Ensuite, tu fais un include de cette page dans ttes celles de ton site.
 
Cette page te permettra d'eviter que quelqu'un aille sur une page de ton site sans etre passé par l'identification...

n°115200
matafan
Posté le 20-03-2002 à 18:51:42  profilanswer
 

Et tu n'oublies pas de configurer apache pour qu'il ne renvoie pas les fichier *.inc (par exemple) si un petit malin les demande :D

mood
Publicité
Posté le 20-03-2002 à 18:51:42  profilanswer
 

n°115203
youdontcar​e
Posté le 20-03-2002 à 18:55:49  profilanswer
 

matafan a écrit a écrit :

Et tu n'oublies pas de configurer apache pour qu'il ne renvoie pas les fichier *.inc (par exemple) si un petit malin les demande :D


:heink: tu fais des fichiers .inc.php ...

n°115205
Cherrytree
cn=?
Posté le 20-03-2002 à 18:59:39  profilanswer
 

youdontcare a écrit a écrit :

:heink: tu fais des fichiers .inc.php ...  




Ca je savais :) :D
 
Par contre le coup de l'include du fichier qui teste le login, c'est pas con du tout. En plus je suis trop bête, parce que ce test, je le fais dans chaque fichier déjà, bonjour le sens de la conception. J'vous jure, y a des jours...
 
Merci encore. Le topic reste ouvert. Si vous sentez l'envie d'ajouter qqch, faites-le, j'apprends plein de choses grace à vous.

n°115379
Tentacle
Posté le 21-03-2002 à 00:33:34  profilanswer
 

youdontcare a écrit a écrit :

:heink: tu fais des fichiers .inc.php ...  




 
Ouais je préfère même les mettre directos dans un dossier protégé avec un .htaccess . :crazy:

n°115398
ethernal
Chercheur de vérité...
Posté le 21-03-2002 à 02:11:43  profilanswer
 

Tentacle a écrit a écrit :

 
 
Ouais je préfère même les mettre directos dans un dossier protégé avec un .htaccess . :crazy:  




 
tu sais que je me suis amusé pas plus tard qu'hier à essayer de voir les fichiers .inc d'un site d'un gars de allhtml... ;)
Fais gaffe à ce genre d'extensions...
 
1. La personne en question avait installé un genre de browser d'image comme on en voit beaucoup... très pratique pour lister le contenu des répertoires :D un petit www.monsite.com/images/browser.php?directory=../admin donne de très beaux résultats.  
Le code qu'il a downloadé et installé est mal développé puisqu'il n'empêche pas de remonter dans l'arborescence.  
Il ne faut pas oublier que ce genre de scripts ouvrent directement les répertoires pour lister leur contenu et l'afficher (opendir("$directory" );...)
Si ça avait été sur son pc perso, je remontais jusqu'a la racine de son serveur (du serveur pc, pas que du site !!)
 
2. Il avait aussi utilisé les frames php avec un include("$menu" ); ou qqch dans le genre... Très pratique pour afficher tout ce que contiennent les fichiers dont l'extension n'est pas php/php3. www.monsite.com/index.php?fichier=admin/config.inc
ça aussi c'est mal développé, il n'est pas le premier à en faire les frais... Ne jamais faire passer le nom du fichier dans l'url, mais toujours faire passer par exemple la clé d'un tableau. ex:
 $tab= array("menu1"=>"page1.php" );  
 include($tab["$fichier"]);
 
comme il avait eu la présence d'esprit de renommer tout ces fichiers ".inc" en ".inc.php", je n'ai évidemment rien su voir (bon y a juste que son répertoire /admin/ n'était pas protégé, mais bon, je suis pas méchant, je lui ai dit...).
 
s'il y avait eu le moindre fichier ne portant pas l'extension php je l'aurais affiché comme je voulais avec ou sans .htaccess !!
Donc, sois sûr de toi avant d'utiliser ce genre d'extension ;)
 
a+

 

[jfdsdjhfuetppo]--Message édité par ethernal--[/jfdsdjhfuetppo]

n°115563
Cherrytree
cn=?
Posté le 21-03-2002 à 13:17:31  profilanswer
 

Et bêh ! :jap: Ca fait peur c'truc là.

 

[jfdsdjhfuetppo]--Message édité par Cherrytree--[/jfdsdjhfuetppo]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [PHP] - Sécurité des informations

 

Sujets relatifs
[Very Difficult Isinde]PHP et AS400[PHP + MySQL] Prendre la plus grande valeur...
[PHP]Placer le pointeur au debut du fichier[PHP] COPIER UN MODEL DE FICHIER
[PHP] que fait exactement un fclose??[PHP] if if if non je suis sur que je me prends la tete pour rien :)
Sécurité d'un site Extranet[PHP]Afficher un tableau de manière sophistiquée (à la excel)
[PHP JAVASCRIPT] Crée un lien hypertexte sur toute une ligne ..[PHP-MySQL] : Problème de connexion à la base de données sous Linux
Plus de sujets relatifs à : [PHP] - Sécurité des informations


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR