2008-08-29 5 views
2

Comment autoriser un script php à écrire dans un fichier avec des restrictions de sécurité élevées, par exemple en autorisant un seul utilisateur à écrire dessus? La difficulté semble être qu'un script php fonctionne en tant qu'utilisateur avec peu d'autorisations (peut-être apache, ou www, ou personne?), Et même si je choisis apache the_writable_file, le répertoire dans lequel il se trouve peut ne pas être accessible en écriture l'utilisateur de bas niveau. En général, quelle est la manière habituelle avec laquelle php peut travailler avec des fichiers locaux de manière sécurisée?Écriture de scripts php dans des fichiers non modifiables dans le monde

Répondre

2

Malheureusement, dans les hôtes partagés qui utilisent mod_php, il n'existe aucun moyen de restreindre l'accès pour sécuriser les fichiers de votre application Web et de votre compte utilisateur.

La solution est de exécuter votre application Web en tant que votre utilisateur de connexion. Lorsque vous faites cela, les autorisations de fichier UNIX peuvent correctement verrouiller tout le monde. Il existe plusieurs façons de l'implémenter, y compris SuExec, suPHP, ou d'exécuter PHP avec FastCGI avec mod_fcgid ou mod_proxy_fcgid. FastCGI est mon moyen préféré.

Une autre solution consiste à utiliser un hôte dédié ou un serveur privé virtuel.

0

Bien sûr, chgrp apache the_writable_file et chmod g+w the_writable_file. Après cela, seul votre utilisateur sécurisé et l'utilisateur apache seront en mesure d'écrire dans le fichier. Étant donné que l'utilisateur apache est généralement interdit de se connecter, vous n'avez qu'à vous soucier des utilisateurs Web qui écrivent dans votre fichier sécurisé en utilisant le démon http.

0

Tous les dossiers contenant doivent avoir des permissions d'exécution. Par exemple, si le fichier se trouve dans /foo/bar/the_writable_file, les répertoires "foo" et "bar" doivent tous deux avoir un droit d'accès exécutable pour accéder au fichier_inscriptible, même s'ils n'ont pas les droits de lecture/écriture.

Questions connexes