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 :

Htaccess limitant à index.php uniquement


Sujet :

Apache

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Htaccess limitant à index.php uniquement
    Bonjour,

    Je cherche à faire un fichier htaccess pour un dossier où mes utilisateurs peuvent uploader des fichiers.
    Le système en place nécessite qu'un fichier index.php soit disponible dans ce dossier d'upload et soit fonctionnel. Je voudrai donc que le serveur PHP ne prenne en compte que ce fichier "index.php" mais pas les autres.

    J'ai tenté de faire le deny de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #<Files index.php">
    #  Order allow,deny
    #  Allow from all
    #</Files>
     
     
    #<Files *.php">
    #  Order deny,allow
    #  Deny from all
    #</Files>
    mais le serveur me renvoie un "boo boo"... J'ai aussi tenté quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #<Files ~ "[^index]\.php$">
    #  Order allow,deny
    #  Allow from all
    #</Files>

    mais sans succès non plus...


    Merci d'avance de votre aide...

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Deny from all
     
    <Files index.php>
        Allow from all
    </Files>
    Ceci ne fonctionne pas ?

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Ne fonctionne pas
    Cela ne fonctionne pas... Il me répond (que j'appelle un index.php ou autre), "The server made a boo boo."

    D'autre part, le problème est que j'ai besoin que les données soient accessibles en download, mais pas interprétées par PHP. Donc si un utilisateur entre www.monserveur.fr/phpinfo.php , je voudrai qu'il reçoive le fichier en TELECHARGEMENT. Mais si il tape www.monserveur.fr/index.php, que ce soit interprété...

    Merci d'avance de votre aide.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Une piste (brièvement testée sous Apache 2.2/FF 3) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <FilesMatch "\.php$">
        RemoveType .php
        header set Content-Type application/octetstream
        header set Content-Disposition attachment
    </FilesMatch>
     
    <Files "index.php">
        AddType application/x-httpd-php .php
        header unset Content-Type
        header unset Content-Disposition
    </Files>
    Qui requerrait :
    • que PHP fonctionne comme module (du moins par rapport à ma proposition)
    • que le module headers soit actif
    • de disposer des droits de redéfinition nécessaire (AllowOverride)

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Boo boo again
    Julp,

    Mon serveur est configuré comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    AuthUserFile /Library/WebServer/Documents/../.htpasswd
    AuthGroupFile /dev/null
    AuthName "Accès sécurisé à la zone de transfert"
    AuthType Basic
    Require valid-user
     
     
     
    <FilesMatch "\.php$">
        RemoveType .php
        header set Content-Type application/octetstream
        header set Content-Disposition attachment
    </FilesMatch>
     
    <Files "index.php">
        AddType application/x-httpd-php .php
        header unset Content-Type
        header unset Content-Disposition
    </Files>
    PHP tourne bien en module, sous MacOSX, mais quand je tente d'envoyer l'url avec le "index.php", le serveur me renvoie "boo boo"... Même chose avec mon autre fichier "phpinfo.php" qui me sert à tester l'envoi d'autres fichiers php.

    J'ai fait un autre test en mettant le HTACCESS suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    AuthUserFile /Library/WebServer/Documents/../.htpasswd
    AuthGroupFile /dev/null
    AuthName "Accès sécurisé à la zone de transfert"
    AuthType Basic
    Require valid-user
     
     
     
    <FilesMatch "\.php$">
    #    RemoveType .php
    #    header set Content-Type application/octetstream
    #    header set Content-Disposition attachment
         order deny,allow
         Deny from all
    </FilesMatch>
     
    <Files "index.php">
    #    AddType application/x-httpd-php .php
    #    header unset Content-Type
    #    header unset Content-Disposition
       Order allow,deny
       Allow from all
    </Files>
    et j'ai aussi un "boo boo" du serveur...

    Aurais tu une idée de ce que ça cache ?

    P.S. : est-il possible que tu sois le formateur chez Anaska ?

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Qu'en dit le log d'erreur ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AuthUserFile /Library/WebServer/Documents/../.htpasswd
    En passant, "bizarre" comme chemin.

    PS : non

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    J'avais effectivement fait une modif vite faite là-dessus pour un test et n'ai pas changé l'URL par la suite.

    Après changement, j'ai toujours le même souci.

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par julp Voir le message
    Qu'en dit le log d'erreur ?

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Erreur loggée...
    Salut Julp,

    Le log me donne la phrase suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Mon Sep  8 16:41:51 2008] [alert] [client XX.XX.XX.XX] /Library/WebServer/Documents/transferts/.htaccess: AddType not allowed here
    quand je place le htaccess suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    AuthUserFile /Library/WebServer/.htpasswd
    AuthGroupFile /dev/null
    AuthName "Accès sécurisé à la zone de transfert"
    AuthType Basic
    Require valid-user
     
     
    <Files "index.php">
        AddType application/x-httpd-php .php
        header unset Content-Type
        header unset Content-Disposition
    </Files>
    J'ai l'impression qu'une configuration d'un autre htaccess ou httpd.conf bloque le droit à d'autres fichiers htaccess de fonctionner...

    Est-ce possible ? Comment le vérifier ?

    Merci encore de ton aide précieuse.

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par julp
    Qui requerrait :
    [...]
    • de disposer des droits de redéfinition nécessaire (AllowOverride)

    [...]
    Point qui, d'après le message d'erreur, n'est pas respecté.

    Il vous faut donc vérifier la valeur de la directive AllowOverride dans le fichier de configuration d'Apache pour le répertoire voulu (ou plus haut : celui qui correspond à votre racine web, pour un héritage par défaut). Sa valeur, de mémoire, doit au moins être FileInfo AuthConfig (sinon essayez/utilisez All).

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup Julp,

    Je n'ai pas le temps d'essayer la solution dès maintenant, mais je vous remercie pour cette explication. Je fais un post dès que j'ai pu tenter la modification.

  12. #12
    Membre régulier
    Profil pro
    rfv
    Inscrit en
    Novembre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : rfv

    Informations forums :
    Inscription : Novembre 2006
    Messages : 91
    Points : 115
    Points
    115
    Par défaut
    Alors ? as tu essayé quelque chose ? Pour ma part j'ai opté pour le téléchargement forcé des fichiers qui esquive l'injection de code PHP, et cela fonctionne bien.

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/01/2013, 21h19
  2. Réponses: 14
    Dernier message: 11/05/2010, 01h30
  3. Comment rendre index.php le seul protégé par .htaccess ?
    Par Mister Paul dans le forum Apache
    Réponses: 7
    Dernier message: 03/10/2008, 18h59
  4. [Zend] Configuration .htaccess et/ou index.php
    Par leroidje dans le forum MVC
    Réponses: 2
    Dernier message: 21/06/2007, 17h57
  5. htaccess protection du rép sauf index.php - possible?
    Par nagouille dans le forum Apache
    Réponses: 5
    Dernier message: 28/02/2006, 08h28

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