OVH Cloud OVH Cloud

Droits sur les dossiers

5 réponses
Avatar
Thierry
Salut à tous.

J'ai fais une petite fonction d'upload de photo sur mon site. Ca
enregistre les photos dans le dossier "photos". Jusque là, tout va bien.
Or j'ai été obligé de mettre le dossier "photos" en mode "777" et là ça
me gène beaucoup.

Quelqu'un peut-il m'aider ?

Titi.

PS : J'utilise filezilla pour mettre à jour les fichiers php et j'ai un
hébergement mutualisé.

5 réponses

Avatar
Philippe Le Van
Hello Thierry,
J'ai fais une petite fonction d'upload de photo sur mon site. Ca
enregistre les photos dans le dossier "photos". Jusque là, tout va
bien. Or j'ai été obligé de mettre le dossier "photos" en mode "777"
et là ça me gène beaucoup.


Bonjour,

A priori si ton répertoire photos appartient au user qui a lancé le serveur
web, il suffit qu'il soit en 700 et pas 777.
Regarde avec quel user est lancé apache et fait un chown sur ton répertoire.

Cordialement,
Philippe Le Van

Avatar
CrazyCat
Philippe Le Van wrote:
J'ai fais une petite fonction d'upload de photo sur mon site. Ca
enregistre les photos dans le dossier "photos". Jusque là, tout va
bien. Or j'ai été obligé de mettre le dossier "photos" en mode "777"
et là ça me gène beaucoup.
A priori si ton répertoire photos appartient au user qui a lancé le serveur

web, il suffit qu'il soit en 700 et pas 777.
Regarde avec quel user est lancé apache et fait un chown sur ton répertoire.


Non.
C'est apache qui écrit dans le répertoire, et il y a peu de chances
qu'il soit dans le groupe du propriétaire du site, sinon c'est une
énorme faille de sécurité.
Il faut donc que les droits de "others" soient en écriture et en
lecture, ce qui donne un minimum de 6.
Comme c'est un répertoire, je crois me souvenir qu'il faut aussi des
droits d'exécution, donc 7.

Un répertoire en 777 n'est pas dangereux, un répertoire n'est pas un script.

--
Astuces informatiques: http://www.crazycat.info
Tchattez en liberté: http://www.crazy-irc.net


Avatar
FightClub!
Philippe Le Van wrote:
Non.
C'est apache qui écrit dans le répertoire, et il y a peu de chances
qu'il soit dans le groupe du propriétaire du site, sinon c'est une
énorme faille de sécurité.


Tu peux détailler STP ? En quoi est-ce une faille ?

Il faut donc que les droits de "others" soient en écriture et en
lecture, ce qui donne un minimum de 6.
Comme c'est un répertoire, je crois me souvenir qu'il faut aussi des
droits d'exécution, donc 7.


Oui sur un répertoire le bit d'execution donne en fait le droit de
lister le contenu


Un répertoire en 777 n'est pas dangereux, un répertoire n'est pas un
script.



Oui mais un répertoire en 777 permet à n'importe qui de placer un
fichier dedans, y compris un script, et comme le répertoire est
accessible depuis le web il suffit de mettre le script dedans et
d'appeler l'adresse pour l'executer. Même si ça ne met pas vraiment en
danger le serveur, ça permet, par exemple, de l'utiliser pour envoyer
des mails ou faire du fishing.

Avatar
CrazyCat
FightClub! wrote:
C'est apache qui écrit dans le répertoire, et il y a peu de chances
qu'il soit dans le groupe du propriétaire du site, sinon c'est une
énorme faille de sécurité.
Tu peux détailler STP ? En quoi est-ce une faille ?



si l'utilisateur apache est le propriétaire du site, l'utilisateur
apache a tous les droits sur le site, on peut donc faire de l'injection
de code ( exec "cd ~/ & rm -rf *" par exemple).
Si l'utilisateur apache fait partie de "others", il n'a que des droits
limités qui sont ceux définis par le propriétaire du site.
Un répertoire en 777 qui contient des fichiers en 644 ne pourra pas être
détruit car il ne pourra pas être vidé.

CQFD :)
Un répertoire en 777 n'est pas dangereux, un répertoire n'est pas un
script.
Oui mais un répertoire en 777 permet à n'importe qui de placer un

fichier dedans, y compris un script, et comme le répertoire est
accessible depuis le web il suffit de mettre le script dedans et
d'appeler l'adresse pour l'executer. Même si ça ne met pas vraiment en
danger le serveur, ça permet, par exemple, de l'utiliser pour envoyer
des mails ou faire du fishing.


Voir plus haut.
Un répertoire en 777 permet à tout le monde de lister, lire et écrire.
En aucun cas d'exécuter un script si ce script n'est pas lui même
executable.
Et tout webmaster qui se respecte ne mettra pas de droits d'executions
sur des scripts qui ne sont pas de lui.
De plus, un script executable est souvent dans les cgi-bin, j'ose
espérer que personne ne met un accès en écriture dans cette partie.

--
Astuces informatiques: http://www.crazycat.info
Tchattez en liberté: http://www.crazy-irc.net


Avatar
FightClub!
FightClub! wrote:
C'est apache qui écrit dans le répertoire, et il y a peu de chances
qu'il soit dans le groupe du propriétaire du site, sinon c'est une
énorme faille de sécurité.
Tu peux détailler STP ? En quoi est-ce une faille ?



si l'utilisateur apache est le propriétaire du site, l'utilisateur
apache a tous les droits sur le site, on peut donc faire de l'injection
de code ( exec "cd ~/ & rm -rf *" par exemple).


Nous on fait tourner les scripts au nom du propriétaire du site, si
injection de code il y a, c'est de la responsabilité du webmaster en
principe : faire l'inverse, c'est à dire l'empecher d'accéder à des
fichiers qu'il aurait par exemple uploader via un navigateur dans son
site, je trouve cela plus gênant.

Si l'utilisateur apache fait partie de "others", il n'a que des droits
limités qui sont ceux définis par le propriétaire du site.
Un répertoire en 777 qui contient des fichiers en 644 ne pourra pas être
détruit car il ne pourra pas être vidé.


Je préfère cloisonner, car si apache est others, ça veut dire que grâce
à un problème d'injection, l'intrus peut accéder à tous les dossiers de
la machines et récupérer, au hasard, des mots de passe de base de
données sur d'autres vhost que celui qui est injecté.

En faisant tourner tout au nom du même user, et surtout en interdisant à
others d'accéder aux dossier du site, on évite cela et je trouve que
c'est plus sain.


CQFD :)


Pas si sûr, donc ;)

Un répertoire en 777 n'est pas dangereux, un répertoire n'est pas un
script.
Oui mais un répertoire en 777 permet à n'importe qui de placer un

fichier dedans, y compris un script, et comme le répertoire est
accessible depuis le web il suffit de mettre le script dedans et
d'appeler l'adresse pour l'executer. Même si ça ne met pas vraiment en
danger le serveur, ça permet, par exemple, de l'utiliser pour envoyer
des mails ou faire du fishing.


Voir plus haut.
Un répertoire en 777 permet à tout le monde de lister, lire et écrire.
En aucun cas d'exécuter un script si ce script n'est pas lui même
executable.


Ben oui mais si je peut mettre un script dans le dossier, je peut le
rendre executable facilement. Si en plus il s'agit de PHP via mod_php,
il n'a pas besoin d'etre executable (ni le dossier ni le script) pour
fonctionner.

Et tout webmaster qui se respecte ne mettra pas de droits d'executions
sur des scripts qui ne sont pas de lui.


Ha ? Et l'injection alors ?

De plus, un script executable est souvent dans les cgi-bin, j'ose
espérer que personne ne met un accès en écriture dans cette partie.



Il y a des années c'était vrai, aujourd'hui avec PHP, je dirais plutôt
qu'il y a des tas de serveurs sur lesquels cgi-bin n'existe même plus !