L'authentification HTTP : comment ça marche exactement ?

L'authentification HTTP : comment ça marche exactement ? - PHP - Programmation

Marsh Posté le 03-01-2006 à 13:57:12    

Salut,
Comme la plupart des sites, j'ai besoin d'authentifier mes utilisateurs. Il existe plein de méthodes, plus ou moins sécurisées pour que les utilisateurs se loggent mais là je m'interesse au système d'authentification dans les entetes HTTP avec les variables serveur PHP_AUTH_USER et PHP_AUTH_PW. Seulement voilà, j'ai cherché des doc sur le net et c'est plutôt pauvre à part 2 ou 3 bouts de code à peine documentés. D'où mon questionnement :
 
* Pourquoi est-ce si peu utilisé à travers le net alors que ce mécanisme existe ? Est-ce que c'est parce qu'il faut que PHP tourne en module et pas en CGI ?
* Où sont stockés les login/password côté client ? Quelle est la durée de vie de la session ? Comment le serveur garde la trace de l'authentification (j'ai fait un test et ça marche mais j'aimerais bien comprendre ce que je fais)
* Au niveau sécurité, est-ce que c'est plus (ou moins) sécurisé que l'identification+session ?
 
Merci


Message édité par smaragdus le 03-01-2006 à 22:39:50
Reply

Marsh Posté le 03-01-2006 à 13:57:12   

Reply

Marsh Posté le 03-01-2006 à 22:39:06    

eup

Reply

Marsh Posté le 04-01-2006 à 10:03:10    

Le sujet m'interesse aussi  :)

Reply

Marsh Posté le 04-01-2006 à 10:16:44    

Hum, d'après des gens ça ne serait pas très sécurisée.
 
"sinon, pour l'auth HTTP, les infos transitent en clair, et sont à la portée de n'importe quel sniffer, idem d'ailleurs pour les cookies et les vars de session.
si ton site est réellement sensible HTTPS est indispensable"
 
Mais on peut parfaitement sécurisé les données et très simplement. Utilise le cryptage gratuit md5, ça garantiera une certaines sécurité au login. Pour ma part je ne me suis pas encore penché sur le cryptage (un seul site "pro" à mon actif et pas eu besoin de cryptage donc..)


---------------
Vds rien (pour l'instant)|Vds rien (pour l'instant)
Reply

Marsh Posté le 04-01-2006 à 14:56:04    

Paul-Hewson a écrit :

Hum, d'après des gens ça ne serait pas très sécurisée.
 
"sinon, pour l'auth HTTP, les infos transitent en clair, et sont à la portée de n'importe quel sniffer, idem d'ailleurs pour les cookies et les vars de session.


les "variables de session transitent"  :heink: A part le session_id, y a rien qui transite.
 

Citation :

si ton site est réellement sensible HTTPS est indispensable"


 
j'ai pas accès au https malheureusement.
 

Reply

Marsh Posté le 04-01-2006 à 15:17:33    

http://httpd.apache.org/docs/1.3/h [...] l#basicfaq
 
Le plus gros problème selon moi c'est que le comportement de l'authentification http change selon le navigateur, c'est pas glop

Reply

Marsh Posté le 04-01-2006 à 16:15:41    

Tu pourras pas avoir de système totalement sécurisée alors je pense. Mais il n'y a pas que le session_id qui transite. Le nom du compte et le mot de passe transite aussi ..
 
Et sinon pour l'auth HTTP il faut se baser sur une base mysql classique (enfin une base de donnée en tout cas, pas forcément mysql)


---------------
Vds rien (pour l'instant)|Vds rien (pour l'instant)
Reply

Marsh Posté le 04-01-2006 à 17:20:12    

Si tu analyser le truc il te faut lire les entetes HTTP : 2 solutions :  
  - utiliser un sniffer comme packetyzer sous windows (tres soft open source d'ailleur) et sur linux etheral ou en ligne de commande "tcpdump -xn port 80" (-x pour afficher le contenu des packets -n pour désactiver le reverse DNS).  
 
  - ou bien tu peux simuler une requete HTTP vers ton serveur avec une commande telnet :  
  Dans une fenetre DOS tu tape :  
  telnet http://tonsiteweb.com 80
    GET http://127.0.0.1/ HTTP/1.0  (il est possible de devoir tapper cette ligne à l'aveugle)
    puis 2 fois Entree
 
    Et hop tu t'es fais passer pout un navigateur web, et ton serveur te répond tel quel.
 
   (ou bien plus simple mais beaucoup moins fun : http://www.webrankinfo.com/outils/header.php)


---------------
Du tofu en Alsace : www.tofuhong.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed