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
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.
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.
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.
- 1. traitant des fichiers dans php
- 2. Écriture dans le registre Windows?
- 3. Suppression de fichiers avec des scripts python
- 4. Exemples de réflexion dans le monde réel
- 5. téléchargement de fichiers multiples non flash pour php
- 6. compilez des fichiers non-source dans Xcode
- 7. breakpointer non disponible dans le répertoire des scripts de ruby on rails
- 8. le monde des requêtes MDX
- 9. CodeIgniter - Bonjour le monde
- 10. Écriture de XMLDocument non échappé en C#
- 11. GhostScript PDF Fusionner (perdre des champs modifiables)
- 12. Envoyer des données entre deux scripts PHP
- 13. écriture logique pour stocker des données dans Mysql pour stocker des métadonnées de fichiers
- 14. VS.NET: Affichage de la liste des fichiers accessibles en écriture
- 15. Cron exécutera-t-il des fichiers php ou seulement des scripts CGI?
- 16. Écriture du code source C# dans les fichiers
- 17. combiner des scripts dans asp.net ajax toolkit
- 18. Effectuer des mises à jour modifiables dans une requête LINQ?
- 19. Le nom du groupe Tout le monde dans les systèmes d'exploitation non anglais
- 20. Erreur non autorisée lors de la navigation dans des fichiers
- 21. ASP.NET - Lecture et écriture dans le système de fichiers, en dehors de l'application
- 22. fichiers en lecture/écriture Serrures
- 23. Rendre shebang dynamique dans les scripts PHP CLI
- 24. Écriture de fichier journal imprévisible en PHP
- 25. Écriture dans c-string
- 26. Fichiers semi-modifiables (fichiers de configuration, par exemple) et contrôle de version - meilleures pratiques?
- 27. Sécurité PHP: récupérer le fichier PHP du serveur, non-traité
- 28. Activation des scripts inter-domaines dans l'intranet
- 29. Comment écouter une combinaison de touches dans le monde entier?
- 30. Comment avoir inclus/scripts nécessaires utilisent des fichiers locaux