Php.ini configuration par defaut

Fermé
linksys23 Messages postés 133 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 30 décembre 2010 - 29 déc. 2009 à 17:15
mamiemando Messages postés 33367 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 19 novembre 2024 - 30 déc. 2009 à 03:01
Bonjour,
J'ai voulu installer un serveur nginx qui utilise php et mysql pour "m'amuser" et en configurant php j'ai trouvé bizarre que, dans php.ini, la directive open_basedir soit désactivée par défaut Oo, parce que dans le cas d'un serveur dédié ça va, on a deja (tous les droits sur le serveur)(?) mais si c'est un serveur d'hébergement partagé alors le gars qui a un compte chez cet hébergeur il peut par exemple faire un : include('../../../../../etc/shadow'); dans un script bidule.php, lancer une requête vers bidule.php depuis chez lui et ainsi récupérer les mdp du système, non ?.
Est ce que si php n'est pas lancé en root ca marchera quand même ? (si ce que j'ai dit ci-dessus marche, of course)

ps : SVP ne me lancez pas trop de cailloux si j'ai dis n'importe quoi je débute avec linux et je n'ai quasiment jamais touché a php ^^'

1 réponse

mamiemando Messages postés 33367 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 19 novembre 2024 7 801
30 déc. 2009 à 03:01
... exemple faire un : include('../../../../../etc/shadow'); dans un script bidule.php, lancer une requête vers bidule.php depuis chez lui et ainsi récupérer les mdp du système, non ?

Ca présuppose que déjà il puisse modifier le script php. Il n'en aura pas forcément les droits. Pour lire /etc/shadow il faut être root. Autant dire qu'il est encore plus mal. Ceci dit le problème que tu évoques a du sens sur certains site, où il est possible d'injecter dans l'URL un chemin qui permet à un utilisateur quelconque d'accéder à des fichiers situé en dehors du root directory du serveur apache.

Typiquement, en récupérant /etc/passwd il peut en déduire les logins présent sur la machine et commencer à les bourriner. Si la machine n'est pas un minimum sécurisée c'est dommage...

Ceci aurait également du sens si cet utilisateur avait possibilité de générer sur cette page un contenu susceptible d'être lû par php, par exemple un profil sur un site. En général le webmestre est sensé contrôler ce que l'utilisateur a rentré avec des fonctions comme htmlentities.

Soyons clairs, je ne suis absolument pas spécialiste en apache, je te donne juste l'idée et je laisse le soin au pros de corriger ou étayer mes propos.

Est ce que si php n'est pas lancé en root ca marchera quand même ?

A priori un utilisateur qui se connecte en apache arrive sur la machine avec des droits restreints et un utilisateur spécifique. Par contre le serveur apache est lancé par root. C'est donc pour cela qu'il faut être vigilant sur la qualité du code php.

Je t'invite à lire des tutoriels sur apache, ça te permettra d'avoir un point de vue plus rigoureux sur la question et sans doute de lever certaines de tes interrogations.

ps : SVP ne me lancez pas trop de cailloux si j'ai dis n'importe quoi je débute avec linux et je n'ai quasiment jamais touché a php ^^'

Rassure-toi ce n'est pas le style de la maison. Ici on est entre gens civilisés ;-)

Bonne chance
0