URL: https://linuxfr.org/forums/programmationweb/posts/authentification-et-permissions-sur-repertoires Title: Authentification et permissions sur repertoires Authors: David Date: 2007年05月09日T21:13:28+02:00 Tags: Score: 0 Bonjour, Je réalise actuellement une interface de monitoring avec apache/debian/php, et j'aimerais sécuriser l'acces à l'interface par une page de login. Le problème, c'est que je n'arrive pas a configurer correctement les permissions pour accéder à la page de login ou monitoring. Voici le problème : Mon DocumentRoot se trouve sur /srv. -J'ai un fichier logon.php qui se trouve sur /srv, qui récupère le couple login/password par une session et la renvoie à une page hidden.php, qui va comparer ce couple à une BDD d'utilisateurs ORACLE -Les données du monitoring dans /srv/monitoring, et ne doivent pas etre accessibles en tapant l'url, il faut pour y accéder se logger sur /srv/logon.php J'ai donc essayé de faire en sorte que l'utilisateur ne puisse accéder qu'à logon.php, /srv/monitoring n'étant accessible qu'une fois loggué. Voici donc ce que j'ai mis dans mon httpd.conf: <Directory "/srv"> Options -Indexes FollowSymLinks AllowOverride Node Ordre allow,deny Allow from all <Directory "/srv/monitoring"> Options -Indexes FollowSymLinks AllowOverride Node Ordre deny,allow Deny from all Voici mon logon.php: <?php session_start(); if($_SESSION['logged']=='false'){ echo "Bad Password"; } ?> Et mon hidden.php: <?php session_start(); $log = $_POST['login']; $pass= $_POST['password']; $cryptedPass = md5($pass); $db_conn = ocilogon("hr", "sumomath", "//127.0.0.1/XE"); $cmdstr = "SELECT login,password FROM users WHERE login='$log'"; $parsed = ociparse($db_conn, $cmdstr); ociexecute($parsed); while (oci_fetch($parsed)) { £spaces£ £/spaces£$dbCryptedPass = ociresult($parsed, "PASSWORD"); } if(strcmp($cryptedPass,$dbCryptedPass)==0){ £spaces£ £/spaces£echo strcmp($cryptedPass,$dbCryptedPass); £spaces£ £/spaces£header("Location: /monitoring/index.html"); }else{ £spaces£ £/spaces£$_SESSION['logged']='false'; £spaces£ £/spaces£header("Location: logon.php"); } ?> Or, apres m'etre loggé, j'arrive sur [http://localhost/monitoring/index.html](http://localhost/monitoring/index.html) avec une erreur 403 forbidden. D'un coté, je comprends que l'acces me soit refusé, puisque j'y ais interdit l'acces. Mais comment faire alors pour dire au serveur que l'acces à /srv/monitoring n'est possible que par l'intermédiaire de logon.php ( hidden.php en fait, comme il y a un header dans le dernier vers /srv/monitoring) ? Pr résumer ,il s'agit d'arriver à outrepasser l'interdiction du fichier httpd.conf par l'intermédiaire d'une page php. Merci de vos réponses !

AltStyle によって変換されたページ (->オリジナル) /