Abschottung von innen

  • Thread starter Thread starter lichtmaschine
  • Start date Start date
L

lichtmaschine

Guest
Hallo,

derzeit übe ich etwas auf meinem kleinen Atom Homeserver. Installiert habe ich PHP5, MySQL und den lighty.

Wenn ich nun zwei Verzeichnisse für zwei verschiedene Kunden habe, kann ich im einen Verzeichnis die Datei aus dem anderen Verzeichnis per PHP includen. Damit könnte Kunde 1 die Zugangsdaten der Datenbank von Kunde 2 auslesen.

Nun meine Frage. Wie kann ich das verhindern, dass diese nicht aus ihrem Ordner herauskönnen? Könnt ihr mir da ein Stichwort nennen und mir auf die Sprünge helfen?

Danke. :)
 
Ist das OS nicht egal?

Unter Apache war es open_basedir. Hat bei mir ganz gut funktioniert..

Grüße
Marcel
 
Sorry, Debian Squeeze ist installiert.
 
Last edited by a moderator:
Wenn neben PHP auch andere Scriptsprachen genutzt werden sollen: Suexec, um die Scripte im Kontext des jeweiligen Users laufen zu lassen und restriktive Zugriffsrechte (schreibend für den User, Apache-User braucht Lesezugriff, so keine weiteren Zugriffsrechte).
 
Unter Apache war es open_basedir. Hat bei mir ganz gut funktioniert..
Das ist nicht Apache-spezifisch sondern in PHP. Wenn du die php.ini entsprechend konfigurierst wird es auch hier klappen.
Wie vom Vorposter angesprochen ist jedoch das Ausfuehren unter User-Kontext (sei es per MPM itk/peruser oder MOD suexec/fcgid/fastcgi/suphp) immer empfehlenswert.
 
Ich habe nun alles umgestellt, auch Froxlor, somit läuft nun alles in einer eigenen PHP Umgebung und es klappt. Nur alle Prozesse laufen noch unter dem selben Nutzer.
 
Wenn du Froxlor verwendest: Lighttpd, oder Apache?
In beiden Fällen: Wie läuft PHP?
Z.B. zwei Möglichkeiten beim Apache: suexec+fcgid und mod_php
 
Wenn ich jetzt angenommen "einige" Domains hätte, worunter jeweils PHP unter einem eigenen User läuft, dann geht das ja ordentlich auf den RAM Verbrauch.

Allerdings muss es da doch noch andere Möglichkeiten geben oder? Große Hoster wie all-inkl.com bieten zum Beispiel jedem Kunden an noch 500 Unteraccounts zu erstellen, die auch gegenseitig abgeschottet sind. Wenn nun jeder Kunde noch Unteraccounts erstellen würde, das geht doch gar nicht?

Edit: Jetzt komme ich wieder drauf. Die nutzen sicher kein fastCGI oder? Was wird dann bei Webhostern verwendet?
 
Last edited by a moderator:
Die verwenden dann wahrscheinlich normales CGI, also daß der PHP-Interpreter bei jedem Aufruf neu gestartet wird und sich anschließend direkt wieder beendet. Geht natürlich zu Lasten der Geschwindigkeit, kann aber bei vielen sehr schwach besuchten Seiten OK sein.
 
Grosse Hoster benutzen vielleicht auch direkt einen Apache MPM wie peruser oder itk in Kombination mit mod_php.
Waehrend man zwar fuer jede Anfrage (oder Serie von Anfragen) neu forken muss, ist es nicht notwendig PHP jedesmal neu zu laden und man kann den Geschwindigkeitsvorteil von mod_php ausnutzen.
 
Back
Top