| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
kursion
Inscrit le: 26 Sep 2005 Messages: 57
|
Posté le: Sam Mar 01, 2008 12:29 pm |
Sujet du message: Apache & multiusers & php
|
|
Hellow,
c'est moi
Voilà en gros j'ai plusieurs potes qui on un accès FTP sur un dossier de mon serveur. Ils peuvent sans difficulté mettre leurs fichier html et php dessus et apache les publient pour eux
Voici un exemple d'arborescence:
- /www (racine de document en ligne pour apache)
- /www/pierre
- /www/alex
- /www/fred
Mais le problème c'est qu'avec un script php comme:
| Code: | # /www/pierre/hack.php
$f = fopen("../alex/pass.php", "r");
$fread = fread($f, filesize("../alex/pass.php"));
fclose($f);
echo $fread; |
Je pense que vous l'aurez compris pierre peut lire le fichier pass.php de alex !!!!... comment faire pour éviter ce cas super grave ?
Merci
PS: dsl si c'est pas la bonne rubrique |
|
| Revenir en haut |
|
 |
sanguinarius Staff
Inscrit le: 16 Nov 2007 Messages: 88
|
Posté le: Sam Mar 01, 2008 12:48 pm |
Sujet du message:
|
|
Il suffit juste de gerer les droits de ton serveur
en donnant les droits de lecture et d'ecriture que au proprio du dossier
Cordialement |
|
| Revenir en haut |
|
 |
Celelibi

Inscrit le: 29 Mar 2006 Messages: 770
|
Posté le: Sam Mar 01, 2008 7:58 pm |
Sujet du message:
|
|
sanguinarius ça ne marche pas forcément comme ça, ça dépend des droits qu'à l'interpréteur php.
En effet, normalement apache a les droits de l'user et du groupe www-data (configurable). Quand apache lance php, il hérite de cet user et ce groupe. Les fichiers doivent donc être accessible en lecture/exécution pour www-data, et ils seront exécutés avec toujours cet user et ce groupe.
On se mord la queue parce que les fichiers doivent être accessible en lecture/exécution à www-data et ils sont exécutés avec les droits de www-data. Donc tous les scripts devraient avoir accès à tous les autres scripts.
C'est pour ça qu'il existe suphp qui permet de sécuriser un peu mieux tout ça. On a entre autre suphp qui change d'uid pour celui de l'owner du fichier. Avec ça il ne reste donc plus qu'à mettre les droits qu'il faut aux fichiers/dossiers (man chmod). _________________ Il y a un boulet qui sommeille en chacun de nous. (enfin, surtout vous...) |
|
| Revenir en haut |
|
 |
kursion
Inscrit le: 26 Sep 2005 Messages: 57
|
Posté le: Mer Mar 05, 2008 11:10 am |
Sujet du message:
|
|
Oki merci pour vos réponses mais le problème c'est que cette fameuse machine expérimentale tourne sous WinXP !... du coup je suis foutu... d'autres proposition...
Comment font les hébergeurs de site web ? car par exemple un hébergeur comme free.fr stock les données des utilisateurs sur plusieurs serveurs mais plusieurs utilisateurs utilisent le même serveur donc ça veut dire que je peux naviguer sans problème dans leur dossier ? oO... (je vous rassure j'ai testé et c'est bien impossible...) Ma question: "Comment font-ils ?"
Merci de m'aider  |
|
| Revenir en haut |
|
 |
m3ph Admin forum/chat

Inscrit le: 11 Sep 2005 Messages: 485 Localisation: Région parisienne
|
Posté le: Mer Mar 05, 2008 3:12 pm |
Sujet du message:
|
|
Le serveur FTP tourne sous win ?
je pense que si c'est le cas, il devrait y avoir un équivalent aux serveurs FTP tournant sous des systemes linux, à savoir chroot. _________________ Hacktivissement vôtre.
m3ph |
|
| Revenir en haut |
|
 |
Celelibi

Inscrit le: 29 Mar 2006 Messages: 770
|
Posté le: Mer Mar 05, 2008 7:55 pm |
Sujet du message:
|
|
| kursion a écrit: | | Comment font les hébergeurs de site web ? car par exemple un hébergeur comme free.fr stock les données des utilisateurs sur plusieurs serveurs mais plusieurs utilisateurs utilisent le même serveur donc ça veut dire que je peux naviguer sans problème dans leur dossier ? oO... (je vous rassure j'ai testé et c'est bien impossible...) Ma question: "Comment font-ils ?" | Ils sont pas kamikazes !
Parce qu'il faut l'être pour penser foutre un serveur sous windows. _________________ Il y a un boulet qui sommeille en chacun de nous. (enfin, surtout vous...) |
|
| Revenir en haut |
|
 |
kursion
Inscrit le: 26 Sep 2005 Messages: 57
|
Posté le: Sam Mar 08, 2008 1:34 pm |
Sujet du message:
|
|
MultiUsers & Shared Host
open_basedir restrict
Enfin !
Voici LA solution introuvable sur le net... Après plusieurs heures (jours) de recherche sur l'ami google, après plusieurs essais non fructueux, après des centaines de messages d'erreur et après beaucoup de tasses de café... j'ai réussi à faire fonctionner cette fameuse directive open_basedir afin d'interdire l'accès d'un dossier d'un utilisateur à l'autre !
La solution se cache dans les VirtualHost et Directory
Imaginons que nous avons une arborescence comme ci-dessous:
| Code: |
# f:/www/
*-f:/www/albert/
*-f:/www/martin/ |
Le nom de domaine de albert est: albert.com et celui de martin est martin.com
Ce que nous cherchons à faire est simplement d'interdire l'accès de albert à martin ou l'inverse et cela afin d'éviter qu'albert ou martin puisse lister ou lire un fichier de l'autre ou encore accéder à tout le dossier de l'autre.
La solution est simple et il suffit simplement d'integrer dans le fichier de configuration apache (ou le fichier de vhosts):
| Code: | <VirtualHost *:80>
ServerAdmin martin@martin.com
DocumentRoot "f:/www/martin/"
ServerName martin.com
</VirtualHost>
<Directory "d:/www/martin/">
php_admin_value open_basedir "d:/www/martin"
</Directory>
<VirtualHost *:80>
ServerAdmin albert@albert.com
DocumentRoot "f:/www/albert/"
ServerName albert.com
</VirtualHost>
<Directory "d:/www/albert/">
php_admin_value open_basedir "d:/www/albert"
</Directory> |
Voilà à partir du moment ou l'utilisateur se trouve sur albert.com uniquement le dossier "albert" et les sous-dossiers de "albert" sont accessibles et pareil pour "martin" !
Optimisation:
| Citation: | <VirtualHost *:80>
ServerAdmin albert@albert.com
DocumentRoot "f:/www/albert/"
ServerName albert.com
<Directory "d:/www/albert/">
php_admin_value open_basedir "d:/www/albert"
</Directory>
</VirtualHost>
|
Marche sous windows et linux
Voilà j'espère avoir aidé un peu la communauté
++
Kursion |
|
| Revenir en haut |
|
 |
|