IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

[Configuration Apache] Interdire l'accès à des données sensibles à certains utilisateurs en PHP


Sujet :

Apache

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 156
    Points : 59
    Points
    59
    Par défaut [Configuration Apache] Interdire l'accès à des données sensibles à certains utilisateurs en PHP
    Bonjour,

    Je cherche à filtrer l'accès direct à des fichiers sensibles de mon site à certains utilisateurs.

    Les utilisateurs qui y ont accès sont tous décrits dans une base MySQL (avec un id/mdp associé).

    En gros, je cherche à restreindre l'accès direct d'une personne malveillante qui tenterait de faire par exemple cette requête :

    http://monsite.free.fr/donneessensib...ieredonnee.pdf

    => faire en sorte que cette personne soit renvoyée à l'index de mon site et lui demande un login/mot de passe.

    Et si l'utilisateur est déjà loggé et reconnu, il puisse télécharger le fichier en question.

    J'ai noté qu'il est possible de restreindre l'accès à des fichiers d'un répertoire via le fichier .htaccess placé dans le répertoire en question.

    Le problème est que de nouveaux utilisateurs viennent s'inscrire sur le site, la base des users change donc en permanence, et le fichier .htaccess devrait être modifié en permanence en fonction ...

    Est-il possible de restreindre l'accès de ces fichiers à ces utilisateurs enregistrés en base SQL ?

    EDIT : j'ai trouvé un lien intéressant, je vais donc commencer par là : http://www.widexl.com/tutorials/htaccess.html

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    La seule méthode que je vois c'est de rediriger systématiquement tout ce qui doit être protégé sur une page PHP qui contrôle l'utilisateur, redirige s'il faut sur la page d'accueil ou bien exécute ce qui est demandé si l'authentification est correcte.

    J'ai maquetté ceci en 2 minutes, ça a l'air de fonctionner :
    Fichier .htaccess :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !filtre_securite\.php
    RewriteRule (.*) filtre_securite.php [QSA,L]
    filtre_securite.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    session_start();
     
    if (isset($_SESSION["login"])) {
    	if ($_SESSION["login"] == "toto") {
    		$URL = parse_url($_SERVER["REQUEST_URI"]);
    		include($_SERVER["DOCUMENT_ROOT"].$URL["path"]);
    	} else {
    		header("Location: /login.php");
    	}
    } else {
    	header("Location: /login.php");
    }
    ?>
    login.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    session_start();
    $_SESSION["login"] = "toto";
    ?>
    <html>
    login
    </html>
    A toi d'adapter. Le principe c'est que login.php positionne une certaine variable de session (le login de l'utilisateur par exemple) qui est vérifiée par filtre_securite.php. Si cette variable existe et a la valeur attendue, la requête demandée est traitée, sinon on redirige sur l'écran de login.

  3. #3
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 156
    Points : 59
    Points
    59
    Par défaut
    Merci beaucoup pour ton aide, Mac, je teste ça de suite.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JTable] Interdire la modification des données ?
    Par Cyborg289 dans le forum Composants
    Réponses: 7
    Dernier message: 25/02/2013, 10h40
  2. interdir d'introduire des données ds un combobox
    Par colombe dans le forum Bases de données
    Réponses: 6
    Dernier message: 07/06/2006, 12h32
  3. Réponses: 4
    Dernier message: 11/05/2006, 21h36
  4. PHP interdire l'accès à des données
    Par Zobi-wane dans le forum Langage
    Réponses: 19
    Dernier message: 07/03/2006, 14h00
  5. Temps d'accès à des données dans un fichier
    Par TONIAPEL dans le forum Assembleur
    Réponses: 5
    Dernier message: 28/09/2003, 15h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo