Hello tout le monde,
j'ai mon ptit serveur web Apache 2.0 qui tourne sans problème. J'héberge
deux de mes potes sur mon serveur grâce à la variable userdir. Le
problème c'est que n'importe qui des deux utilisateurs peut remonter à
la racine ou sur tout le serveur web comme ceci (avec un ptit script php):
Code:
<?php
$pointeur = opendir('./../../.phpmyadmin'); // ici on remonte où on
veut, pour l'exemple on va dans le dossier .phpmyadmin
while($q = readdir($pointeur)){
if ($q != "." and $q != ".."){
echo "<a href=index.php?page=".$q.">".$q."</a><br>";
}
}
closedir($pointeur);
?>
J'ai déjà essayé de mettre un fichier htaccess pour bloquer l'accès à la
racine cependant le fichier me bloque la racine ainsi que tout les
sub-dossiers (sous-dossiers). J'ai aussi essayé d'implémenter la
variable Userdir disabled root dans ma configuration apache mais ça ne
change rien. Voici mon dossier sur d: (windows):
d:/online/
d:/online/site # http://xxx.xxx.xxx/ (racine)
d:/online/users
d:/online/users/perso1 # http://xxx.xxx.xxx/~perso1
d:/online/users/perso2 # http://xxx.xxx.xxx/~perso2
Comment faire pour bloquer l'utilisateur dans son dossier uniquement ?
Essayer: .htaccess, blocage des fonctions opendir, fopen, etc... mais
les users ont en besoin !
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
j'ai mon ptit serveur web Apache 2.0 qui tourne sans problème. J'héberge deux de mes potes sur mon serveur grâce à la variable userdir. Le problème c'est que n'importe qui des deux utilisateurs peut remonter à la racine ou sur tout le serveur web comme ceci (avec un ptit script php):
Code: <?php $pointeur = opendir('./../../.phpmyadmin'); // ici on remonte où on veut, pour l'exemple on va dans le dossier .phpmyadmin while($q = readdir($pointeur)){ if ($q != "." and $q != ".."){ echo "<a href=index.php?page=".$q.">".$q."</a><br>"; } } closedir($pointeur); ?>
[...]
À moins que tu ne puisses forcer chacun de tes potes à faire un chroot() au début de chacun de leurs scripts, je ne vois pas bien comment la réponse pourrait être donnée en PHP. Ce serait plutôt une configuration du serveur Apache, aussi je te propose d'aller en discuter plutôt sur <news:fr.comp.infosystemes.www.serveurs>, vers lequel je place le suivi.
j'ai mon ptit serveur web Apache 2.0 qui tourne sans problème. J'héberge
deux de mes potes sur mon serveur grâce à la variable userdir. Le
problème c'est que n'importe qui des deux utilisateurs peut remonter à
la racine ou sur tout le serveur web comme ceci (avec un ptit script php):
Code:
<?php
$pointeur = opendir('./../../.phpmyadmin'); // ici on remonte où on
veut, pour l'exemple on va dans le dossier .phpmyadmin
while($q = readdir($pointeur)){
if ($q != "." and $q != ".."){
echo "<a href=index.php?page=".$q.">".$q."</a><br>";
}
}
closedir($pointeur);
?>
[...]
À moins que tu ne puisses forcer chacun de tes potes à faire un chroot()
au début de chacun de leurs scripts, je ne vois pas bien comment la
réponse pourrait être donnée en PHP. Ce serait plutôt une configuration
du serveur Apache, aussi je te propose d'aller en discuter plutôt sur
<news:fr.comp.infosystemes.www.serveurs>, vers lequel je place le suivi.
j'ai mon ptit serveur web Apache 2.0 qui tourne sans problème. J'héberge deux de mes potes sur mon serveur grâce à la variable userdir. Le problème c'est que n'importe qui des deux utilisateurs peut remonter à la racine ou sur tout le serveur web comme ceci (avec un ptit script php):
Code: <?php $pointeur = opendir('./../../.phpmyadmin'); // ici on remonte où on veut, pour l'exemple on va dans le dossier .phpmyadmin while($q = readdir($pointeur)){ if ($q != "." and $q != ".."){ echo "<a href=index.php?page=".$q.">".$q."</a><br>"; } } closedir($pointeur); ?>
[...]
À moins que tu ne puisses forcer chacun de tes potes à faire un chroot() au début de chacun de leurs scripts, je ne vois pas bien comment la réponse pourrait être donnée en PHP. Ce serait plutôt une configuration du serveur Apache, aussi je te propose d'aller en discuter plutôt sur <news:fr.comp.infosystemes.www.serveurs>, vers lequel je place le suivi.
Florian Sinatra
*Yves Lange* @ 21/02/2006 00:44 :
<?php $pointeur = opendir('./../../.phpmyadmin'); // ici on remonte où on veut, pour l'exemple on va dans le dossier .phpmyadmin while($q = readdir($pointeur)){ if ($q != "." and $q != ".."){ echo "<a href=index.php?page=".$q.">".$q."</a><br>"; } } closedir($pointeur); ?>
/* Ceci est la façon correcte de traverser un dossier. */ while (false !== ($file = readdir($handle))) { echo "$filen"; }
/* Ceci est la MAUVAISE façon de traverser un dossier. (Imaginez un dossier nommé 0) */ while ($file = readdir($handle)) { echo "$filen"; }
*Yves Lange* @ 21/02/2006 00:44 :
<?php
$pointeur = opendir('./../../.phpmyadmin'); // ici on remonte où on
veut, pour l'exemple on va dans le dossier .phpmyadmin
while($q = readdir($pointeur)){
if ($q != "." and $q != ".."){
echo "<a href=index.php?page=".$q.">".$q."</a><br>";
}
}
closedir($pointeur);
?>
/* Ceci est la façon correcte de traverser un dossier. */
while (false !== ($file = readdir($handle))) {
echo "$filen";
}
/* Ceci est la MAUVAISE façon de traverser un dossier. (Imaginez un
dossier nommé 0) */
while ($file = readdir($handle)) {
echo "$filen";
}
<?php $pointeur = opendir('./../../.phpmyadmin'); // ici on remonte où on veut, pour l'exemple on va dans le dossier .phpmyadmin while($q = readdir($pointeur)){ if ($q != "." and $q != ".."){ echo "<a href=index.php?page=".$q.">".$q."</a><br>"; } } closedir($pointeur); ?>
/* Ceci est la façon correcte de traverser un dossier. */ while (false !== ($file = readdir($handle))) { echo "$filen"; }
/* Ceci est la MAUVAISE façon de traverser un dossier. (Imaginez un dossier nommé 0) */ while ($file = readdir($handle)) { echo "$filen"; }