PHP - Schutz-site aus Ordner mit den 777 Berechtigungen
In der Regel versuche ich, meine Ordner haben die Berechtigung 775, aber einige web-hosting-weigert sich zu lassen, PHP schreibt oder verschieben von Dateien in andere Ordner, es sei denn, es hat die Berechtigung 777 (es kann sein, open_dir oder im abgesicherten Modus).
Gibt es irgendwelche Möglichkeiten, um zu verhindern, dass alle PHP-Dateien ran, die aus solchen Ordner, in Fall ein bösartiges PHP-Skript hochgeladen wurde, da?
- - Ordner mit den 777 Berechtigungen sind inexcusably gefährlich. Finden Sie einen anderen web-host.
- Manchmal, wenn die Tätigkeit als Freiberufler, Kunden werden darauf bestehen, dass der eigene Webhoster und stellt mit einem, der hat solche 'Einschränkungen'. Wenn ich könnte, würde ich Graben diese webhosts in einem Herzschlag!
- Vielleicht eine dumme Frage, aber wie genau ist ein 777 Ordner gefährlicher als ein 755 ein? Ist es, weil andere Benutzer auf dem server ausführen könnte PHP-Dateien drin, oder gibt es einige größere Gefahr sehe ich nicht? Da ausgeführt werden von außen über den Webserver eine Erlaubnis tun würde, wäre es nicht?
- Für Beispiele, siehe serverfault.com/questions/105773/... oder stackoverflow.com/questions/1577514/...
- cheers, aber ich verstehe immer noch nicht, wie jemand schreiben könnte in einen solchen Ordner von außen. Es ist nicht so, dass ich bezweifle, es besteht die Gefahr - ich Folge dem Prinzip der Gewährung der so wenig Rechte wie möglich, aber ich möchte es verstehen. Ich denke, ich werde zu öffnen, eine neue Frage später.
- Wenn Sie Dateien hochladen, und die Validierung für die Datei-Typen schwach ist oder umgangen wird, könnte jemand das hochladen einer php-Datei zu.
InformationsquelleAutor Extrakun | 2010-02-25
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte man deaktivieren, PHP für das Verzeichnis. Sehen diese Antwort.
Tatsächlich, Sie finden einen anderen host-wenn Ihr host erfordert KEINE 777
es schreibbar sein. In Wahrheit, wenn PHP-Skripte schreiben können, um einen Ordner, der
ist 755 (suexec, suPHP), das ist effektiv das gleiche wie mit ALLEN Ordnern
777. Also, was Sie wollen, für die Sicherheit, ist ein host, der verlangt 777 um
machen Sie den Ordner beschreibbar.
Denken Sie an es auf diese Weise - fast alle Ordner sind 755 standardmäßig. Wenn Skripte
schreiben auf Ordner 755, das bedeutet, dass jedes Skript schreiben können, um einen beliebigen Ordner!
Wenn Sie Skripts schreiben können, nur die Ordner auf 777, das bedeutet, dass kann nur das schreiben
auf die Ordner, die Sie sollen. Wenn du gehst, um zu ermöglichen, schreibt
alle Verzeichnisse, können Sie auch ALLE 777, so das ist, was inexcusably
gefährlich.
Nur die Meinung von einem lizenzierten security professional mit fünfzehn Jahren
Erfahrung.
Ray ' s Kommentar macht keinen Sinn. Eine lizenzierte security professional? Skripte werden erstellt, indem der Besitzer sollte in der Lage sein, zu schreiben auf 755 Ordner! Sehen http://www.zzee.com/solutions/linux-permissions.shtml auch!
Und die Antwort auf die ursprüngliche Frage... Es ist einfach. mit php_value auto_prepend_file innerhalb .htaccess wird es tun. Erstellen Sie einfach ein einfaches Skript, das beendet [die() Funktion], definieren, die es innerhalb .htaccess; jedes PHP-Skript aufgerufen, aus einem solchen Verzeichnis werden nicht ausgeführt. Sie können sogar konfigurieren, dass der "kill" - Skript, um E-Mail, die Sie jedes mal, wenn etwas verdächtiges passiert (wenn etwas zu versuchen, rufen Sie die PHP-Skripte aus dem "geschützten" Verzeichnis).
Deaktivieren von Skript-Ausführung können Sie auch versuchen, deaktiviert Skript-Ausführung auf dem hochgeladenen Ordner, in dem alle Dateien gehen. Sie können dies tun, durch das schreiben ein .htacess Datei auf den Ordner.
AddHandler cgi-script .php .php3 .php4 .phtml .pl .py .jsp .asp .htm .shtml .sh .cgi
Options -ExecCGI