![]() |
|
|
#1 |
|
Membre
Date d'inscription: septembre 2004
Messages: 1
|
Pourquoi avons-nous besoin d'authentification dynamique ?
Par exemple, pour contrôler l'accès à un feed RSS sensible. Supposons que vous auriez un serveur web capable de lister les événements de sa log système, et de diffuser ce genre d'information par un feed RSS, ce qui est probablement un excellent moyen de monitorer un ou plusieurs sites. Encore faut-il vérifier qui accède à ces feeds. Plusieurs newsreaders (au moins RSS Bandit et FeedReader) supportent l'authentification HTTP, et donc nous nous sommes tournés naturellement vers cette solution Le principal problème, c'est qu'on aimerait bien ne pas se taper une reconfiguration du .htaccess statique à chaque fois qu'un mot de passe change ou est ajouté. L'idéal, c'est de laisser PHP s'occuper de contrôler les profils utilisateurs dans la base de données MySQL. D'après la documentation PHP, il suffit juste de regarder deux variables pour retrouver le nom et le mot de passe de l'usager distant. Malheureusement, ces deux variables sont toujours vides lorsque PHP tourne en mode CGI. Devinez quoi ? C'est justement dans ce mode qu'OVH abrite les sites mutualisés... Fallait-il changer de fournisseur ou renoncer à nos projets ? Que nenni ! Nous avons simplement trouvé un autre moyen de retrouver les informations de sécurité dans PHP. En fait, la seule chose dont vous avez vraiment besoin est le module Apache mod_rewrite Apache module, et la possibilité d'ajouter quelques directives au fichier .htaccess. La solution est de sélectionner une variable Apache qui est effectivement transmise à PHP même en mode CGI, et d'y coller les données d'authentification transmises par le navigateur (ou par le newsreader). Que faut-il mettre dans .htaccess ? Jetez un coup d'oeil à la directive ajoutée au fichier .htaccess: Code:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
</IfModule>
Que faut-il mettre dans le script PHP ? L'objectif, c'est de faire un script qui marche partout, que PHP s'exécute comme un module Apache, ou en mode CGI. Avant d'utiliser $_SERVER['PHP_AUTH_USER'] et $_SERVER['PHP_AUTH_PW'], vérifier si ces variables sont vides. Si oui, essayer de les reconstituer à partir de $_SERVER['REMOTE_USER']. L'extrait de code qui suit fait exactement cela : Code PHP:
Un descriptif plus complet de la solution est disponible ici, ainsi que le script PHP complet. |
|
|
|
|
|
#2 | |
|
Membre
Date d'inscription: juillet 2005
Messages: 3
|
PHP_AUTH_USER et PHP_AUTH_USER sont encore vide ?j'ai lu référence yetanothercommunitysystem et aussi OVH "PHP_AUTH_USER" Cette directive dit que, si le module mod_rewrite est disponible, houai et si pas là alors ?? Citation:
Code PHP:
Merci d'avance. |
|
|
|
|
|
|
#3 |
|
Membre
Date d'inscription: octobre 2005
Messages: 5
|
A condition d'avoir rajouté la directive dans .htaccess,
le simple script suivant semble fonctionner : <?php echo "*".$_SERVER['REMOTE_USER']."*"; ?> Contrairement à ce qui a été dit plus haut, la variable $_SERVER['REMOTE_USER'] contient juste le nom de l'utilisateur, sans qu'il y ait besoin de décoder quoi que ce soit. Par contre, je ne suis pas parvenu à récupérer le mot de passe (sous forme codée ou non) NB : L'hébergement est un 300gp |
|
|
|
|
|
#4 |
|
Membre
Date d'inscription: juillet 2005
Messages: 3
|
Merci frob de ta réponse, nous avons donc le même problème ...
Qui pourrait nous aider ??? |
|
|
|
|
|
#5 |
|
Membre
Date d'inscription: octobre 2005
Messages: 5
|
Finalement, le plus important n'est-il pas de récupérer le nom d'utilisateur ?
Le mot de passe n'a ici que peu d'intérêt, dans la mesure où l'utilisateur est déjà authentifié (en d'autres termes on est certain qu'il a saisi le mot de passe correspondant à son nom d'utilisateur). |
|
|
|
|
|
#6 |
|
Membre
Date d'inscription: juillet 2005
Messages: 3
|
Je voudrais faire une securisation par la sécurité APACHE (htaccess) ET par la base MySQL notamment en limitant l'accès à certaines tables en fonction du profil de l'utilisateur, et ceci sans demander une deuxième fois le User/Password.
|
|
|
|
|
|
#7 |
|
Membre
Date d'inscription: octobre 2005
Messages: 5
|
Dans ce cas, ton "authentification" MySQL a juste besoin du nom d'utilisateur, puisque celui-ci a déjà été authentifié par Apache (ce qui prouve simplement qu'il a saisi le bon mot de passe).
Mais peut-être ai-je mal compris ce que tu veux réellement faire ? |
|
|
|
|
|
#8 |
|
Membre
Date d'inscription: juillet 2007
Messages: 163
|
Re : Comment utiliser l'authentification HTTP en PHP chez OVH
Et comment on déconnecte l'utilisateur ?
|
|
|
|
|
|
#9 |
|
Membre
Date d'inscription: septembre 2006
Messages: 1 155
|
Re : Comment utiliser l'authentification HTTP en PHP chez OVH
Apache > fermeture de page normalement
autrement, c'est toi qui le gère.
__________________
Camille / Bosco > "Te domine irl" / "est un connard mais assume". www.forum-pc.net / www.guilde-nerds.fr / www.scoot-boost.com Pensez à utiliser les moteurs de recherche avant de poser une question !! |
|
|
|
![]() |
| Outils de la discussion | |
|
|