Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

comment heberger des utilisateurs (php) sur mon site en toute securite

2 réponses
Avatar
Pascal Gend
Bonjour,

Je gère un serveur linux+apache+php et je souhaiterais héberger des pages
php d'utilisateurs qui les déposent sur le site via ftp : disons que je
devient provider de site internet.
Pour ftp, pas de problème : les utilisateurs ont un compte ftp restreint et
ne peuvent remonter dans l'arborescence.
C'est l'utilisateur nobody, propriétaire du process httpd d'apache, qui
exécute tous les scripts php avec les droits qui sont les siens.
Pour php, j'ai lu dans la doc. qu'il n'y a pas 36 solutions car le système
de protection lecture/écriture d'un OS tel que linux n'est pas conçu pour se
marier avec un serveur http qu'il héberge:
- paramétrage de php pour que les scripts ne puissent pas remonter dans
l'arborescence de la machine (= interdire lecture/écriture de fichiers qui
se trouvent au dessus du script exécuté).
- paramétrage de php pour que les scripts ne puissent pas exécuter des
commandes systèmes qui permettraient malgré tout de remonter dans
l'arborescence: soit certaines commandes précisées, soit toutes.
C'est radical, mais du coup j'impose l'interdiction à tout le monde, y
compris à des scripts dans lesquels j'ai confiance et dont je souhaiterais
qu'il ne subissent pas ces interdictions.

Est-il possible d'avoir par ex. deux niveaux de sécurité distincts en php:
l'un interdit tout, l'autre n'interdit rien?

Finallement, c'est "comment font les providers"?

Pascal

(Dans la doc. d'apache 2, j'ai lu que le module "mpm_perchild_module" en
développement permettrait d'assigner des sous-process apache à des uid
différents, mais ce n'est pas au point et je ne sais pas si cela resoudra
mon problème.)

2 réponses

Avatar
Bloodshed
- paramétrage de php pour que les scripts ne puissent pas remonter dans
l'arborescence de la machine (= interdire lecture/écriture de fichiers qui
se trouvent au dessus du script exécuté).
Bonne question !

- paramétrage de php pour que les scripts ne puissent pas exécuter des
commandes systèmes qui permettraient malgré tout de remonter dans
l'arborescence: soit certaines commandes précisées, soit toutes.
C'est dans le php.ini

C'est radical, mais du coup j'impose l'interdiction à tout le monde, y
compris à des scripts dans lesquels j'ai confiance et dont je souhaiterais
qu'il ne subissent pas ces interdictions.
Essai de faire un répertoire qui ne sera pas touché par ceci (je sia spas comment)

Finallement, c'est "comment font les providers"?
Pourquoi ne pas leur demander tout simplement ? Par ex. Tuxfamily.org

(Dans la doc. d'apache 2, j'ai lu que le module "mpm_perchild_module" en
développement permettrait d'assigner des sous-process apache à des uid
différents, mais ce n'est pas au point et je ne sais pas si cela resoudra
mon problème.)
De rien ;-D


Avatar
Michel Belleau (malaiwah.com)
On 15 Apr 2004 20:41:03 GMT, "Pascal Gend"
wrote:

Est-il possible d'avoir par ex. deux niveaux de sécurité distincts en php:
l'un interdit tout, l'autre n'interdit rien?


Je pense que ce que tu veux faire peut se configurer à l'intérieur de
ton "httpd.conf".

Tu pourrais te définir deux répertoires différents, sous deux
"<virtual>" différents. Pour chacun, tu pourrais définir une valeur
différente pour le "safe_mode" de PHP!

<IfModule mod_php4.c>
php_admin_flag safe_mode on
</IfModule>

... pour le répertoire "utilisateurs" et

<IfModule mod_php4.c>
php_admin_flag safe_mode off
</IfModule>

... pour le répertoire que tu tu fais entièrement confiance.

---
Michel Belleau
Services Informatiques MALAIWAH.COM [http://www.malaiwah.com/]