Verzeichnisschutz
xdragonx
- php
0 Chris0 xDragonx
0 Sven Rautenberg
Hi an alle,
ich betreibe ein Subdomain Service in zusammenhang mit Free Webspace mit php und perl unterstützung.
Nun heute hat sich eine User angemeldet, hat auf sein Webspace ein "PHP SCRIPT ( son art Verzeichnis Browser )mit dem er alle dateien auf sein webspace angucken kann" hochgeladen.
Nun das script arbeitet besser als es soll :-)
der Server Verzeichnis Aufbau sieht so aus.
http://mydomain.tld/userdir/username
Ich habe als OS W2K, als webserver den JanaServer.
Der script zeigt alle dateien und ordner an, den der User auf sein Webspace hochgeladen hat. Bis dahin ist alles richtig.
Aber wenn er dann "cd .." anklickt wird der verzeichnis /userdir/ ausgelesen, und alle andere Userverzeichnisse stehen zum ausspionieren(auslesen) zum verfügung. Egal welche userverzeichnis man anklickt, mann kommt an alle dateien des anderen Users ran.
Und wenn der "cd .." nochmal angeklickt wird landet der user auf dem root verzeichnis des servers. Da stehen ihm noch mehr möglihkeiten unfug mit dem dateien anzustellen. Da hat er auch an alle dateien zugriff weil der Script aus allen verzeichnissen alle dateien auslesen kann. Alle was von Webserveraus erreichbar ist, die ganzen cfg files usw kann man mit dem script auslesen.
Nun wie stelle ich es an das der script mit seinen funktionen auch wirklich dort bleibt wo er hingehört.Ich mein wenn der User den script auf sein webspace hochgeladen hat, dan soll es auch nur den verzeicnis auslesen. und nicht das ganze serververzeichnis.
Wie kann ich das erreichen, das PHP oder Perl scripte wirklich nur dort funktionieren wo Sie hochgeladen wurden. Und nicht auf andere Verzeicnisse überspringen können. Höchstens in die Unterverzeicnisse wie /bilder oder /html von dem User.
Bitte Helft mir. Mein Server ist gerade Down. habe ca. 300 User
Ich bin auch über jede andere Lösungs Vorschlag offen, ich habe sogar überleg die verzeichnisstruktur zu ändern. Und mehrere virtuelle Server anzulegen.
Hi
Also, da hast du dir ein gewaltiges Problem eingehandelt! Warum? Der Jana Server ist für deinen einsatz schlicht nicht geeignet, ihm fehlen gewisse sicherheitsmechanismen, auch den den du jetzt benötigen würdest. (kannste übrigens auf der jana page nachlesen)
Ich würd dir empfehlen einen richtigen webserver (wens n' win2k server ist würd ich gleich den iis nehmen) zu installieren oder die scripts zu sperren.
greetz
Ich habe im php manual gelesen,das man das in der php.ini unter "open_basedir = VERZEICHNIS " einrichten kann, das die scripte nur in dem verzeichnis ausgeführt werden, in dem Sie auch liegen. Das gilt für chmod() unlink() und alle befehle die auf dateisystem zugreifen können. !!!
Ich habe es getestet. Es funkioniert. Aber mit nur ein verzeichnis.
Das heist ich kann in der php.ini unter
"open_basedir=laufwerk:\verzeichnis1\verzeichnis2"
angeben. Und die scripte die auf das datei system zugreifen werden nur im verzeichnis2 ausgeführt. Wenn das script auf die übergeordnete verzeichnis zugreift wird eine fehlermeldung ausgegeben und das script abgebrochen.
Ich habe aber kein ahnung wie ich an dem option mehrere verzeichnisse anhängen soll, was ja wichtig für mich ist.
wie z.B. "open_basedir=verzeichnis1; verzeichnis2; verzeichnis3
weis das jemand an open_basedir mehrere verzeichnisse hinzuzufügen.
Ich habe gelesen das die Verzeichnisse unter OS WINDOWS durch ein semikolon und in den anderen OS durch ein doppelpunkt getrennt werden sollen.
Und es sollen auch mehrere verzeichnisse möglich sein
( laut php Manual )
Ich habe PHPvers4.x wenn es jemand wichtig sein sollte.
Aber es funzt nicht.
Moin!
ich betreibe ein Subdomain Service in zusammenhang mit Free Webspace mit php und perl unterstützung.
Ich habe als OS W2K, als webserver den JanaServer.
Wie du zum Glück herausgefunden hast, ist deine Konfiguration nicht wirklich optimal. Du kannst eigentlich von Glück reden, dass dir dein haarsträubender Fehler mal aufgefallen ist. Weißt du mit Sicherheit, dass keiner deiner Benutzer schon gleichartige Skripte benutzt hat?
Bitte Helft mir. Mein Server ist gerade Down. habe ca. 300 User
Wenn ich bei Google "janaserver security" eingebe, werde ich fündig. Und das sind keine erfreulichen Fundstellen - wie bei einer eierlegenden Wollmilchsau, wie es der Janaserver nun einmal ist, auch nicht unbedingt anders zu erwarten war.
Nun gut: Deine einzige Lösung wird sein, den Scheiß Janaserver schleunigst zu löschen und durch einen vernünftigen Webserver zu ersetzen. Bei 300 Usern sehe ich beispielsweise nicht, dass du den Janaserver noch "privat" einsetzt. Hast du schon die 50 Euro Registrierungsgebühr gezahlt?
Nimm also einen ordentlichen Server. Nimm Apache oder IIS. Sorge für regelmäßige Updates dieses Servers, sprich: Abonniere die entsprechende Mailingliste (ok, da hat man bei MS leider wohl Pech).
Entwickle ein vernünftiges Hostingkonzept. Informiere dich insbesondere über die Gefahren von Multi-User-Hosting auf ein- und demselben Server. PHP kennt beispielsweise den Safe-Mode, mit dem einige Klippen, die so ein Hosting birgt, umschifft werden sollen. Inwieweit diese Mechanismen unter Windows greifen, ist mir nicht bekannt. Unter Linux sind sie einigermaßen vernünftig benutzbar - sie schränken allerdings den PHP-Programmierer mehr oder weniger stark ein. Vergiß Perl in dem Zusammenhang nicht. Dort gibt es keinen Safe-Mode, sondern du mußt alles über Dateizugriffsrechte regeln.
Und wenn du nach der zweiwöchigen Umbauzeit dann wieder online gehen kannst - nicht ohne zuvor gründlich getestet zu haben, ob die einzelnen Webspaces 100% sicher voreinander und vom System her abgeschottet sind - dann freuen sich deine zehn Benutzer sicherlich über die dann wesentlich bessere Performance. Nun ja, 290 Benutzer werden sich in der Zwischenzeit wahrscheinlich einen besseren Hoster gesucht haben. Zwei Wochen Downzeit wegen Doofheit des Anbieters sind ja kein Pappenstiel.
- Sven Rautenberg