webentwicklung-frage-antwort-db.com.de

Festlegen der Dateiberechtigungen unter Linux, damit PHP in ein Verzeichnis schreiben kann

Ich habe eine Website mit Codeigniter erstellt und auf einer Linux-Box gehostet.

Ich versuche, bei den Einstellungen für Dateiberechtigungen "Best Practices" zu befolgen, bin mir jedoch nicht sicher, ob ich die Auswirkungen auf die Sicherheit vollständig verstehe, wenn ich ein Verzeichnis auf 777 setze.

Ich habe einen Bilderordner, auf den öffentlich zugegriffen werden kann (damit Website-Benutzer die Bilder der Website sehen können). Mein Codeigniter-Code muss gelegentlich in ein Unterverzeichnis in diesem Ordner ('images/data') geschrieben werden.

Alle meine Dateien sind auf 644 und meine Verzeichnisse auf 755 voreingestellt. Für die Verzeichnisse, in die Codeigniter schreiben muss, setze ich die Berechtigung auf 777.

Das scheint zu locker zu sein. Gibt es eine Möglichkeit, mein System so einzuschränken, dass nur Codeigniter Schreibzugriff auf diese Verzeichnisse erhält? Ich habe einige Online-Artikel über das Setzen des Besitzers auf "Apache" gelesen, aber soweit ich das beurteilen kann, habe ich keinen "Apache" -Besitzer auf meiner Linux-Box. Ich sehe nur root und dann den Domaininhaber der Website (der Server hostet mehrere Domains, jede hat ein "User" -Konto).

3
neomech

Ich habe jetzt einige Rückmeldungen von meinem ISP erhalten, die mich in die richtige Richtung wiesen. Dies ist der PHP -Dateibehandler, der auf meinem Server verwendet wird.

Mein Server ist mit dem DSO-Handler für PHP eingerichtet. 5. Das bedeutet, dass Dateien und Verzeichnisse, die mit meinen PHP-Skripten erstellt wurden, "nobody" gehören und daher für "Other" zugänglich sein müssen Ich muss die Berechtigungen für Verzeichnisse, in die meine PHP-Skripte geschrieben werden müssen, auf 777 setzen.

Die Alternative besteht darin, meinen PHP 5-Handler auf suPHP zu setzen. Dies ist ein wenig sicherer, weil es bedeutet, dass meine PHP-Skripte als Eigentümer von PHP-Code schreiben. Dies bedeutet, dass ich meine Verzeichnisse als 755 belassen kann. Es ist anscheinend ein kleiner Perfomance-Hit damit. Abhängig von Ihrer aktuellen Berechtigungskonfiguration können außerdem umfangreiche Änderungen an den Berechtigungen für Ihre vorhandenen Dateien und Ordner erforderlich sein. Es gibt auch Bedenken, dass Sie mit einem fehlerhaften Skript großen Schaden anrichten können, wenn Ihre PHP-Skripte die gleichen Berechtigungen wie der Websitebesitzer haben.

Hier ist eine gute Zusammenfassung der Unterschiede zwischen DSO und suPHP: https://helpdesk.wiredtree.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=1663#

1
neomech