PHP und Sicherheit

hallo
ich hab heute beim arbeiten bei uns auf dem server eine file endeckt, mit
der man es schafft über php in jedes beliebiege verzeichniss auf dem server
auf dem es liegt zu wechseln. warscheinlich kennen es einige schon aber für
die die es nicht kennen
http://greeny.dyndns.org/php-script

vorerst hab ich mal denn befehl opendir aus dem php rausgennommen indem ich
es unter disable_functions getan habe.
ich wollte aber fragen ob jemand eine besser lösung weis! weil bis jetzt
hab ich noch keinen server gefunden bei dem das script nicht geklappt hat!
danke

mit freundlichen grüßen
matthias

Generell sehe ich in diesem Fall kein Sicherheitsrisiko durch php
selbst, da das Script ja bei dir auf dem Server liegt und daher
grundsätzlich nur durch denjenigen der Schreibrechte auf dem Server hat
installiert werden kann. Der Webserver selbst sollte natürlich kein
Schreibrechte haben auf Verzeichnisse in denen CGI, php oder andere
Eventhandler eingeschaltet sind.

Ansonsten ist natürlich der Programmierer gefragt, HTTP
Übergabeparameter (POST, GET, COCKIE) auf Plausibilität zu überprüfen.
Dabei sollte regiaster_globals auf jeden Fall ausgeschaltet werden.
Wir haben speziell ein kleines Framework geschrieben, das alle
eingeheneden Variablen prüft. Dabei wird geprüft welche Variablen ein
Link liefern darf, welchen Typs sie sind und zuzätzlich kann zu jeder
Variable eine individuelle Kontrollklasse geschrieben werden, die
zusätzliche Überprüfungen durchführt.
Z.B Variablen die direkt in einem Datenbankselect verwendet werden
dürfen kein ' enthalten.

Gruß
  Leonhard

solltest du keinen Einfluß auf die installierten Skripte haben, da sie
per upload kommen, oder du den Programmierern nicht zu gänze vertraust
kannst du versuchen mit open_basedir in der php.ini das
Basisiverzeichnis innerhalb dem php files dateien lesen und öffnen
können einzustellen. Du kannst auch mehrere Verzeihnisse angeben.

Die Variable kannst du in der http.conf für jeden Directory Eintrag
gegebenenfalls umkonfigurieren.

Ansonsten könnte man versuchen den Webserver mit chroot zu starten. Habe
es allerdings noch nie versucht. Es müsste aber gehen.

Gruß
  Leonhard

danke ich hab das problem mittlerweile schon mit open_basedir + save_mode
gelöst.
für die dies nicht wissen beide liegen in der php.ini.

gruß
matthias