PHP und Files...

Apache, Lighttpd, nginx, Cherokee
Post Reply
blaue0
Posts: 22
Joined: 2004-06-25 00:37
Contact:
 

PHP und Files...

Post by blaue0 »

Guten Morgen ;-)

Ich habe auf meinem Server Apache2 in der aktuellen Version zusammen mit mod_suPHP und php am laufen. Allerdings möchte ich verhindern das ein User von seinem Homeverzeichnis Dateien in anderen Homeverzeichnissen lesen kann.
Kann man PHP irgendwie einschränken, dass nur Files im IncludePath, im Homedir und noch unter /tmp gelesen werden können ohne den Safemode zu aktivieren?
andreask2
Posts: 696
Joined: 2004-01-27 14:16
Location: Aachen
 

Re: PHP und Files...

Post by andreask2 »

Setze entsprechende Rechte im Dateisystem. Wenn eine Datei die Rechte 600 hat, kann die nur von diesem User gelesen werden. Bei PHP-Scripten ist das also kein Problem, weil diese Dank SuPHP unter der eigenen User-ID laufen, und somit über die entsprechenden Rechte verfügen (allerdings sind PHP-Scripte dadurch auch in der Lage andere PHP-Scripte im eigenen Verzeichnis zu verändern/zu löschen).

Da der Apache aber unter einer eigenen User-ID läuft, hat dieser keinen Zugriff auf Dateien mit 600er Rechten. Das heißt, HTML-Dateien, Bilder... benötigen 644er Rechte, können dem entsprechend von allen Usern gelesen werden. Eine Lösung wäre evtl. allen solche Dateien die Gruppe des Webservers zuzuordnen, in der die User nicht enthalten sein dürfen, dann funktioniert das auch mit 640, somit können User selber nicht auf die Dateien zugreifen. Da der User aber immer noch über den Websever (z.B. per Alias Direktive in einer .htaccess) drauf zugreifen könnte, muss für jeden User eine entsprechende Zugriffs-Beschränkung auf sein eigenes Verzeichnis eingerichtet sein (Allow... im directory-container).

Safe-Mode bringt herzlich wenig. Nicht nur dass es sich lediglich auf PHP-Scripte auswirkt (und so für statische Dateien, CGI... umgangen werden kann), selbst diese sind nicht wirklich geschützt, da es in vielen PHP-Extensions Wege gibt, den safe-mode (und auch open_basedir) zu umgehen.

siehe: http://de3.php.net/security-note.php
kawfy
Posts: 307
Joined: 2002-08-08 23:45
 

Re: PHP und Files...

Post by kawfy »

blaue0 wrote:Kann man PHP irgendwie einschränken, dass nur Files im IncludePath, im Homedir und noch unter /tmp gelesen werden können ohne den Safemode zu aktivieren?
:idea: Genau dafür ist doch "open_basedir" gemacht worden. Es funktioniert auch, wenn du keinen Safemode benutzt. Aus http://de3.php.net/features.safe-mode:
[...] Limit the files that can be opened by PHP to the specified directory-tree, including the file itself. This directive is NOT affected by whether Safe Mode is turned On or Off. [...] The default is to allow all files to be opened.
andreask2
Posts: 696
Joined: 2004-01-27 14:16
Location: Aachen
 

Re: PHP und Files...

Post by andreask2 »

kawfy wrote:Genau dafür ist doch "open_basedir" gemacht worden. Es funktioniert auch, wenn du keinen Safemode benutzt.
Und was hast Du davon wenn man es durch Funktionen in PHP-Extensions, ggfs. Perl-Scripten... umgehen kann?
Post Reply