Frage

Wie können Sie einem PHP-Skript das Schreiben in eine Datei mit hohen Sicherheitsbeschränkungen erlauben, z. B. indem Sie nur einem einzigen Benutzer erlauben, darauf zu schreiben?

Die Schwierigkeit scheint darin zu liegen, dass ein PHP-Skript als Benutzer mit geringen Berechtigungen ausgeführt wird (vielleicht Apache, www oder niemand?), und selbst wenn ich chown Apache the_writable_file, das Verzeichnis, in dem es sich befindet, ist für den Low-Level-Benutzer möglicherweise nicht beschreibbar.Wie kann PHP im Allgemeinen auf sichere Weise mit lokalen Dateien arbeiten?

War es hilfreich?

Lösung

Leider in gemeinsam genutzten Hosts, die verwenden mod_php, es gibt keine Möglichkeit, den Zugriff einzuschränken um Dateien in Ihrer Web-App zu sichern und sich als Benutzer anzumelden.

Die Lösung ist Führen Sie Ihre Web-App als Ihr Anmeldebenutzer aus.Wenn Sie dies tun, können UNIX-Dateiberechtigungen korrekt alle anderen sperren.Es gibt mehrere Möglichkeiten, dies umzusetzen, unter anderem SuExec, suPHP, oder PHP mit FastCGI ausführen mit mod_fcgid oder mod_proxy_fcgid.FastCGI ist meine Lieblingsmethode.

Eine andere Lösung besteht darin, einen dedizierten Host oder einen virtuellen privaten Server zu verwenden.

Andere Tipps

Sicher, chgrp apache the_writable_file Und chmod g+w the_writable_file.Danach können nur noch Ihr sicherer Benutzer und der Apache-Benutzer in die Datei schreiben.Da es dem Apache-Benutzer normalerweise untersagt ist, sich anzumelden, müssen Sie sich nur darum kümmern, dass Webbenutzer über den http-Daemon in Ihre sichere Datei schreiben.

Alle enthaltenen Ordner müssen über Ausführungsberechtigungen verfügen.

Zum Beispiel, wenn die Datei in ist /foo/bar/the_writable_file, müssen die Verzeichnisse „foo“ und „bar“ beide über ausführbare Berechtigungen verfügen, um auf die_beschreibbare_Datei zuzugreifen, auch wenn sie keine Lese-/Schreibberechtigung haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top