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 :

Un .htacces pour empêcher l'accès direct aux fichiers PHP


Sujet :

Apache

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 87
    Points
    87
    Par défaut Un .htacces pour empêcher l'accès direct aux fichiers PHP
    Bonjour à tous,

    Je développe actuellement un site qui permet l'upload de document via formulaire HTML.

    Théoriquement on ne peut pas uploader de fichiers php. En effet je fais toute une série de vérifications et si le fichier uploadé s'avère être un fichier php, rien ne se passe.

    Bien entendu après avoir uploadé les documents, les utilisateurs peuvent les télécharger via le site web.

    J'aimerais renforcer encore un peu plus la sécurité.

    Admettons qu'un individu arrive à uploader un fichier php : le_fichier_intrus.php.
    Celui-ci se retrouve à l'endroit suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://site.com/documents/le_fichier_intrus.php
    Je me dis qu'une bonne pratique de sécurité serait la suivante : même si l'utilisateur arrive à uploader un fichier php, il ne faut pas qu'il puisse y accéder.
    S'il n'y accède pas, le script ne s'exécute pas, donc pas de risques.

    J'ai donc pensé à mettre dans le fichier .htaccess à la racine du site la directive suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <Files ~ "[^index]\.php$">
    Order Allow,Deny
    Deny from All
    </Files>
    Sachant que lors de la navigation, l'utilisateur est toujours sur index.php. Cette règle ne gêne donc pas du tout la navigation.

    Donc en dehors de index.php, l'utilisateur ne peut demander aucun .php.
    S'il décide d'essayer d'accéder à son fichier en tappant http://site.com/documents/le_fichier_intrus.php, il obtient une interdiction.
    Donc le script n'est pas exécuté.

    J'ai l'impression que cette méthode assure une très bonne sécurité.
    Y-a-t-il un inconvénient / une faille que je ne vois pas à utiliser une telle méthode ?

  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
    Personnellement, non, je ne vois pas de problème avec cette méthode.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par _Mac_ Voir le message
    Personnellement, non, je ne vois pas de problème avec cette méthode.
    Merci pour ta réponse.

    La méthode serait donc fiable.

    Une autre question : vois-tu d'autres extensions que je devrais "filtrer" par ce moyen ?

    A part des scripts php, quels genre de fichiers ne devraient surtout pas être exécutés ?

  4. #4
    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
    Y a peut-être un moyen plus simple pour faire en sorte que rien n'est interprétable sauf certains trucs autorisés. Dans le .htaccess à la racine du répertoire à protéger :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ForceType application/octet-stream
    <Files index.php>
        ForceType application/x-httpd-php
    </Files>
    <Files *.gif>
        ForceType image/gif
    </Files>
    <Files *.jpg>
        ForceType image/jpeg
    </Files>
    Ainsi, tous les fichiers de ton répertoire et des sous-répertoires seront considéré comme étant d'un type inconnu (application/octet-stream) et donc renvoyé tel quel au navigateur, sauf index.php qu'on dit être de type PHP, donc interprété par Apache, les images GIF et JPEG (ce n'est pas nécessaire mais c'est pour éviter les problèmes d'interprétation du Content Type application/octet-stream sur les images par certains navigateurs), etc.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 87
    Points
    87
    Par défaut
    Merci pour cette solution alternative

    Je considère ce problème comme résolu

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/06/2010, 19h40
  2. Empécher accès direct aux fichiers
    Par sixieme-sens dans le forum Apache
    Réponses: 1
    Dernier message: 04/03/2009, 13h13
  3. Interdire l'acces directe aux fichiers php
    Par Never dans le forum Apache
    Réponses: 4
    Dernier message: 04/12/2006, 21h00
  4. htaccess : interdire l'accès direct aux fichiers php
    Par Cédricss dans le forum Apache
    Réponses: 5
    Dernier message: 08/10/2006, 11h29
  5. [TOMCAT] Comment empêcher l'accès direct aux fichiers
    Par thomine dans le forum Tomcat et TomEE
    Réponses: 17
    Dernier message: 14/04/2005, 10h19

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