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:
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 <Directory /var/www/> FollowSymLinks AllowOverride all Require all granted </Directory>
Dans public j'ai un fichier index.html et dans resource le fichier index.css associé.
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 la section head de l'index il y a:
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".
<link rel='stylesheet' content='text/css' href='/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:
en:
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>
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...
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>
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
Partager