Rechte-Problem bei Web-Anwendung
Hallo Liste, ich "spiele" derzeit mit diversen teilen einer Umfangreicheren Webanwendung (Evolutionäres-Prototyping). Bislang habe ich jedoch immer einen Rechner zur Verfügung gehabt auf dem sonst niemand Zugriff hatte außer ich (natürlich mit Ausnahme von root). Mit anderen Worten ich habe mir bislang den Webserver nie mit anderen Nutzern geteilt, und habe deshalb für die andere Situation IMHO nicht wirklich Erfahrungswerte. Meine jetzigen "Experimente" gehen jedoch davon aus das die Anwendung auch in einer Umgebung laufen muss die sich den Webspace mit anderen Nutzern teilt. So wie dies bei vielen Web-Hostern der Fall ist. Doch genau daraus entstehen mir diverse Sicherheitsprobleme was den Zugriff auf die Dateien in _meinem__Webspace_ betrifft, da schließlich jeder andere Nutzer sein (beispielsweise) php-script mit den rechten des Webservers (wwwrun) ausführt und dadurch auch die Inhalte meiner Dateien lesen kann die er eigentlich gar nicht lesen können sollte. Hierzu 2 konkrete Szenarien: *Zugangsdaten der Datenbank* ============================ Da man auf eine Datenbank schließlich nur aus einem Script heraus zugreifen kann, wenn man dieser bei einem connect den korrekten Nutzernamen und Passwort übergeben hat, muss man diese Daten irgendwo unterbringen. Im Fall eines Webhosters wäre dies in irgend einer Datei des Web-Space die man via .htaccess von Zugriffen von außen geschützt hat, was sie jedoch nicht vor Zugriffen durch andere Nutzer auf dem Webserver schützt die mit den rechten des Webservers agieren können. Doch wie soll man dieses verhindern? Ein verschlüsseln dieser Datei mit Zugangsdaten nutzt schließlich nichts, da man hierzu wieder ein Passwort zum entschlüsseln ablegen müsste um...*röchel*...also Wie? Ich kann es mir nicht anders erklären, aber irgendwas muss mir hier doch entgangen sein, was habe ich übersehen. Es kann doch nicht sein das dieses Problem nicht schon irgendwie gelöst worden ist? *Session-Dateien* ================= Ein ähnliches Problem betrifft die Session-Dateien deren Inhalt sich nach der Lösung des 1 Problems leicht durch die besagte Verschlüsselung abschalten ließe. Andererseits wäre es auch hier wünschenswert wenn fremde Nutzer erst gar nicht in den Genuss kommen die entsprechenden Dateien zu sichten, da bereits das auflisten einer SESSION_ID ein Sicherheitsrisiko beinhaltet. Was sich wiederum mit dem Ablegen der Session-Daten in einer Datenbank abschalten ließe, ungeachtet dessen ist eine Lösung über Session-Dateien Interessant! *FAZIT* ======= In beiden Fällen ist das Problem das gleiche. Welche Möglichkeiten bleiben mir also, als einer unter vielen Webspace-Usern um zu garantieren, das kein anderer meiner Mit-User auf meinen Webspace Zugriff hat. Natürlich mit Ausnahme dessen was die Welt ohnehin über http/https kann und natürlich dem allmächtigen und allgegenwärtigen root? :) -- ______________________________________________________________________ ::: Gruß Martin :::::::::::::::::::::*May The Force Be With You:D*:::: ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Sunday 28 October 2007, Martin Parusel wrote:
In beiden Fällen ist das Problem das gleiche. Welche Möglichkeiten bleiben mir also, als einer unter vielen Webspace-Usern um zu garantieren, das kein anderer meiner Mit-User auf meinen Webspace Zugriff hat.
Aufruf Deiner WEB Anwendung als CGI-Programm über suexec. Das ist zwar nicht das schnellste, löst aber Deine Probleme. Ein WEB Space Provider, der CGI Scripte zuläßt, sollte das als Standardkonfiguration haben. Torsten
Hallo Martin! Martin Parusel wrote:
In beiden Fällen ist das Problem das gleiche. Welche Möglichkeiten bleiben mir also, als einer unter vielen Webspace-Usern um zu garantieren, das kein anderer meiner Mit-User auf meinen Webspace Zugriff hat. Natürlich mit Ausnahme dessen was die Welt ohnehin über http/https kann und natürlich dem allmächtigen und allgegenwärtigen root? :)
Auf Shared Servers ist normalerweise seitens des Providers in der virtual host Konfiguration jedes Kunden folgendes gesetzt: php_admin_value safe_mode On php_admin_value open_basedir "/srv/www/web_user1" Damit kann ein Skript nur - auf Dateien zugreifen, die demselben Eigentümer gehören, dem auch das Skript gehört - auf Dateien innerhalb "/srv/www/web_user1" zugreifen Vgl. http://php.net/features.safe-mode Du kannst prüfen, ob open_basedir und safemode bei Deinem Provider aktiviert sind, indem Du versuchst, mit einem PHP-Skript auf eine Datei ausserhalb deines Webspace zuzugreifen bzw auf eine Datei, die nicht Deinem User auf dem Webserver gehört. Dies muss dann eine Fehlermeldung bringen. HTH, Joachim -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Joachim Marx schrieb:
Auf Shared Servers ist normalerweise seitens des Providers in der virtual host Konfiguration jedes Kunden folgendes gesetzt: php_admin_value safe_mode On php_admin_value open_basedir "/srv/www/web_user1"
Damit kann ein Skript nur - auf Dateien zugreifen, die demselben Eigentümer gehören, dem auch das Skript gehört - auf Dateien innerhalb "/srv/www/web_user1" zugreifen
Vgl. http://php.net/features.safe-mode
Du kannst prüfen, ob open_basedir und safemode bei Deinem Provider aktiviert sind, indem Du versuchst, mit einem PHP-Skript auf eine Datei ausserhalb deines Webspace zuzugreifen bzw auf eine Datei, die nicht Deinem User auf dem Webserver gehört. Dies muss dann eine Fehlermeldung bringen.
Na bitte, irgend eine Lösung musste es schließlich geben, ansonsten hätten schließlich ziemlich viele Webseiten ein massives Sicherheitsloch gratis implementiert! THX :) -- ______________________________________________________________________ ::: Gruß Martin ::::*Der Padawan-Schüler sich ehrenvoll verneigt:D*::: ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (3)
-
Joachim Marx
-
Martin Parusel
-
Torsten Foertsch