Bonjour,
J'ai un problème de configuration des VirtualHosts sur mon serveur (CentOS 5). Je veux restreindre les script PHP ou PERL de lister les fichiers dans un autre VirtualHost ou sur le système.

Apache roule sous apache:apache et il est propriétaire du répertoire /var/www/sites et des répertoires enfants.

Fichier: httpd.conf
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
25
26
27
28
29
30
31
32
33
34
35
 ...
<Directory />
Order Deny,Allow
Deny from all
Options None
AllowOverride None
</Directory>
 
<Directory "/var/www/sites/aaa">
Order Allow,Deny
Allow from all
</Directory>
 
<Directory "/var/www/sites/bbb">
Order Allow,Deny
Allow from all
</Directory>
 
... 
 
<VirtualHost *:80>
ServerAdmin support@aaa.local
DocumentRoot /var/www/sites/aaa
ServerName www.aaa.local
ErrorLog logs/aaa_error_log
CustomLog logs/aaa_access_log combined
</VirtualHost>
 
<VirtualHost *:80>
ServerAdmin support@bbb.local
DocumentRoot /var/www/sites/bbbb
ServerName www.bbb.local
ErrorLog logs/bbb_error_log
CustomLog logs/bbb_access_log combined
</VirtualHost>
Voici le script qui liste les fichiers sous le virtualhost, sous le DocumentRoot ou sou n'importe quel répertoire sur mon sytème.

Fichier : /var/www/sites/bbb/test.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
15
16
17
18
19
20
21
22
23
24
<?
 
//define the path as relative
printdir('.'); // liste le contenu de /var/www/sites/bbb
printdir('/'); // liste le contenu de répertoire principal / (/dev, /home, /root, /etc,...)
printdir('..'); // liste le contenu de  /var/www/sites
// maintenant je pourrais imprimer le contenu de  /var/www/sites/aaa si je le désire. 
 
function printdir($path){
//using the opendir function
$dir_handle = @opendir($path) or die("Unable to open $path");
 
echo "Directory Listing of $path<br/>";
 
//running the while loop
while ($file = readdir($dir_handle)) 
{
echo "<a href='$file'>$file</a><br/>";
}
 
//closing the directory
closedir($dir_handle);
}
?>

Connaissez-vous une configuration qui pourrait prévenir un script à l'intérieur d'un VirtualHost de lister les fichiers de d'autres VirtualHost ou du système ?

Merci ,

Francis