Bitte sehen Sie sich auch http://www.suphp.org/ an, die PHP-Skripts mit Benutzerberechtigungen ausführt, anstelle des Benutzers, unter dem der Webserver läuft. Wenn Sie sicherstellen, dass der Webserver das Verzeichnis lesen kann (jedoch nicht notwendigerweise die PHP-Datei selbst), können Sie diese Dateien mit Benutzerberechtigungen ausführen. Andere Benutzer sollten in diesem Fall nicht lesen oder darauf zugreifen können. Dies sollte eine anmutigere und sicherere Art sein, damit umzugehen.
Apache-Server gegen etwas nicht vertrauenswürdigen PHP-Code schützen?
Ich habe eine ungewöhnliche Situation, in der ich mehrere Benutzer für das Hochladen und Ausführen von PHP-Code auf meinem Apache-Server benötige. Ich kann jedoch nicht zulassen, dass ein Benutzer auf die PHP-Quelle eines anderen Benutzers zugreifen kann (wenn Sie sich anhand konkreter Beispiele besser fühlen, stellen Sie sich vor, ich würde Hosting durchführen ein PHP-Programmierwettbewerb).
Folgendes habe ich bisher in der PHP.ini:
disable_functions = readfile, fpassthru, file, file_get_contents, system, fopen, symlink, umbenennen, kopieren, exec, passthru, pcntl_exec, backtick_operator, shell_exec, popen, proc_open
Welche anderen Funktionen muss ich zu dieser Liste hinzufügen, um zu verhindern, dass PHP-Code auf lokale Dateien (und damit auf andere PHP-Quellen) zugreift?
3 Antworten auf die Frage
Klingt so, als müssten Sie den abgesicherten Modus von PHP aktivieren, dadurch werden alle relevanten Funktionen deaktiviert.
(Beachten Sie, dass dies in 5.3 deaktiviert wurde und in PHP6 entfernt wurde.)
Anstatt zu versuchen, innerhalb von PHP damit umzugehen, habe ich ein oder zwei Layer angehoben und Apache + Unix-Konten zum Trennen von Dingen verwendet - zum Beispiel mit suexec, um die Prozesse des Benutzers voneinander zu trennen.
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Welche Software sollte ich verwenden, um meine Festplatte zu verschlüsseln?
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
2
Erinnert sich Windows 7 Home Premium an Netzwerkfreigaben-Passwörter?
-
3
Kann die vorhandene drahtlose Netzwerkverschlüsselung ein Netzwerk wirklich schützen?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?