Verzeichniszugriff steuern mit open_basedir
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anrichten
beseitigen
blockieren
blume
code
domain
eigner auftreten
einstellung
filter
forum
ftp
funktioniert code
klettern
prinzipieller schutz
rechte einstellung
schaden
shell
url
verzeichnis
zugriff
-
Ich finde es aus Sicherheitsgründen klasse, dass bei Lima City
a) nur PHP läuft (und kein Perl, Ruby, Python etc., mit denen PHP-Beschränkungen umdribbelt werden),
b) dieses automatisch in den Domains und Subdomains mittels der PHP.ini-Direktive "open_basedir" eingesperrt wird und ferner dass
c) die PHP-Shell-Möglichkeiten abgeschaltet sind.
Bei einem anderen großen Provider konnte ich mit webadmin.php durch alle Verzeichnisse klettern, auch durch die, die mich echt nichts angingen. Zwar hatte ich keine weitergehenden Rechte, aber gucken ging.
Kein PHP-Script kann bei Lima City Unsinn in Verzeichnissen anstellen, die nicht zur (Sub-)Domain gehören. Und include/require via http ist auch disabled. Sonstige Sprachen sind ebenfalls machtlos, da nicht installiert und installierbar.
Trotzdem fände ich es schön, wenn die PHP.ini-Direktive "open_basedir" auch mir selbst zur Verfügung stünde. Beispielsweise könnte ich ein Upload-Verzeichnis damit absichern, dass dort hochgeladener PHP-Code das Verzeichnis nicht verlassen kann. Es kann nichts includen, was außerhalb liegt. Es kann einfach gar nichts außerhalb. Selbst wenn jemand den Code aus irgendwelchen Gründen an meinem Filter für erlaubterweise hochzulandenden Dateitypen vorbeischmuggeln kann.
Und es zeigt sich, dass es geht. Mit dem Eintrag
php_value open_basedir "/home/webpages/lima-city/meinwebspace/verzeichnis1/verzeichnis2"
in der .htaccess (im "verzeichnis2") kann ich PHP in "verzeichnis2" einsperren. .htaccess muss bei Lima City die Rechte "400" haben, damit ein hochgeladenes Script sich an diesem nicht vergreifen kann *, was den Schutz schließlich beseitigen würde.
Man könnte in diesem Verzeichnis PHP durchaus laufen lassen, vielleicht ist das ja in bestimmten Fällen erwünscht, aber es kann "draußen" keinen Schaden anrichten. Wenn ich beispielsweise PHP nicht vollständig abschalten will in "verzeichnis2".
Was bei mir nicht funktioniert:
ini_set('open_basedir', '/home/webpages/lima-city/meinwebspace/verzeichnis1/verzeichnis2');
Ich dachte, ich teile das mal mit euch, denn im Forum hatte ich nichts dazu gefunden.
EDIT:
Habe ich eine Struktur: meinedomain.de/blumen/ und setze zusätzlich auf das Verzeichnis "blumen" eine Subdomain blumen.meinedomain.de, dann sind die Einstellungen für open_basedir unterschiedlich, je nachdem, wie das Verzeichnis "blumen" aufgerufen wird. PHP kann beim Zugriff auf "blumen" via Subdomain nicht auf das darüberliegende Verzeichnis zugreifen, bei Zugriff über die Hauptdomain aber sehr wohl.
Interessant auch, dass man beim Einrichten auf Lima City für keine Domain das oberste per FTP erreichbare Verzeichnis auswählen kann. Was Sinn macht, denn dieses oberste Verzeichnis wäre mit Domain versehen vom Netz aus ein Einfallstor für alle darunter liegenden Domains und Subdomains, weil deren open_basedir-Einstellungen über diesen Weg nicht gelten.
* Wie mir im Forum an anderer Stelle gezeigt worden ist, ist die Rechte-Einstellung "400" kein prinzipieller Schutz, weil PHP und FTP bei Lima City als ein und der selbe Owner/Eigner auftreten. Dennoch lassen sich mit dieser Einstellung solche PHP-Scripts blockieren, die nicht versuchen, Datei-Rechte umzudefinieren. Beispielsweise mittels missbräuchlichen GET-Aufrufen existierender PHP-Scripts. Also ein gewisser Schutz durchaus.
Beitrag zuletzt geändert: 7.8.2017 11:51:08 von theglobe -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage