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 :

[debutant] 'Require all denied' et groupe 'w*3-data'


Sujet :

Apache

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 33
    Points : 32
    Points
    32
    Par défaut [debutant] 'Require all denied' et groupe 'w*3-data'
    Bonjour,

    Je cherche, je cherche mais ne trouve point..

    Configuration: Apache 2.4 sur Debian Jessie
    Le tout fraîchement installé, suivis d'apt-get upgrade && apt-get update

    J'ai cree un dossier '/var/www/http' contenant le dossier 'test', lui même contenant les dossiers 'public', 'private' et 'resource'
    Toute l'arborescence depuis '/var/www' inclut, appartient au groupe 'www-data' et possède des droits de type '755' (lecture + exécution pour tout le monde, mais écriture uniquement pour l'owner).

    Les règles définis dans apache2.conf:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    <Directory /var/www/>
            FollowSymLinks
            AllowOverride all
            Require all granted
    </Directory>
    Les règles définis dans mon virtualhost 'test.conf' définissent:

    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
     
     
    DocumentRoot /var/www/http/test/public
    DirectoryIndex index.php index.html
    Alias /resource "/var/www/http/test/resource"
     
    <Directory /var/www/http/test>
            Require all denied
    </Directory>
     
    <Directory /var/www/http/test/private>
            Require all denied
    </Directory>
     
    <Directory /var/www/http/test/resource>
            Require all granted
    </Directory>
     
    <Directory /var/www/http/test/public>
            Require all granted
    </Directory>
    Dans public j'ai un fichier index.html et dans resource le fichier index.css associé.
    Dans la section head de l'index il y a:


    <link rel='stylesheet' content='text/css' href='/resource/index.css'>
    Tout marche à merveille! Seulement je me suis rendu compte que d'enlever le mot Indexes d'apache2.conf me permet en effet de recevoir le message 'forbidden' lorsque que j'essaie d'acceder à "localhost/resource" mais je peut toujours afficher le contenu de "localhost/resource/index.css".

    Pas bien méchant pour du css.. Seulement ça m'embête quand même, surtout quand je voudrais avoir du contenu plus sensible dans 'private' par exemple, sur lequel il y aura aussi un alias (pour que php puisse y accéder de la même manière que <link> pour le css).

    J'ai donc modifié dans le virtualhost la section:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    <Directory /var/www/http/test/resource>
            Require all granted
    </Directory>
    en:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    <Directory /var/www/http/test/resource>
            Require all denied
    </Directory>
    Je n'ai plus accès à "localhost/resource/index.css", c'est très bien, mais malgré les droits octroyés à l'arborescence, il semblerait que www-data soit lui aussi bloqué, parce que le css d'index.html ne se charge plus du tout...

    Donc ma question (qui revient partout sur le web mais dont je ne trouve pas de réponses satisfaisante) : Peut-on protéger un accès grâce à 'Require all denied' sans pour autant bloquer l'execution de la balise <link> ou l'accès par un script php par exemple?

    Merci, et bon dimanche à tous

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    dans la configuration d'Apache, vous réglez seulement ce que le serveur web va afficher en le contact à l'adresse http://localhost/...

    donc même si vous bloquez l'accès à un fichier par Apache, PHP pourra quand même accéder au fichier en utilisant le chemin sur le disque /var/www/css/fichier.css

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 33
    Points : 32
    Points
    32
    Par défaut
    Ok, merci Mathieu

    J'ai en effet contourné le problème de la balise 'link' via un include en php.
    Mais si je ne me trompe, cela signifie que le serveur (php) va devoir dumper le fichier à chaque refresh de la page, ce qui ne serait pas le cas via la balise 'link'...

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/10/2010, 15h20
  2. Réponses: 1
    Dernier message: 09/06/2009, 12h43
  3. Réponses: 3
    Dernier message: 08/11/2007, 11h28
  4. Réponses: 4
    Dernier message: 12/01/2006, 02h45
  5. [Debutant] GROUP BY sur les premiers caracteres d'un champ
    Par seb-astien dans le forum Langage SQL
    Réponses: 8
    Dernier message: 09/11/2004, 14h53

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