comment heberger des utilisateurs (php) sur mon site en toute securite
2 réponses
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.)
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
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
- 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
- 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
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/]
On 15 Apr 2004 20:41:03 GMT, "Pascal Gend" <gend@esstin.uhp-nancy.fr>
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 <michel.belleau-no-spam@malaiwah.com>
Services Informatiques MALAIWAH.COM [http://www.malaiwah.com/]
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/]