Sven Rautenberg: Wie sicher sind *.php und *.inc Dateien?

Beitrag lesen

Moin!

Wir setzen einfach mal voraus:
Ein Webserver hat immer nur direkten Zugriff auf das lokale Filesystem seiner Maschine. Kommt die Aufforderung an ihn nun von "innen", dann sagt er sich "lokaler Auftrag, nur Filerechte beachten und basedir und safe_mode". Kommt der Auftrag aber von "außen" über HTTP, dann sagt er sich, "oh, will ich dich Auftrag überhaupt annehmen? Erstmal die ganzen Filterbedingungen anschauen, die  man mir aufgetragen hat. Und wenn ich dann nach innen in mein Filesystem gucke, werde ich auch noch die zusätzlichen Bedingungen in .htaccess und httpd.conf für das Verzeichnis und die Files usw. beachten"

So (ähnlich) macht das jedenfalls der Apache. Der IIS macht, was er will...

Falsch. Ein Webserver ist per Definition eine Software, welche für die Auslieferung von Dateiinhalten per HTTP zuständig ist.

Dabei ist es vollkommen egal, ob der Zugriff von "innen" (IP 127.0.0.1 oder eine von lokalen Netzwerkdevices) kommt, oder von irgendwo aus dem Internet: Solange die Anforderung per HTTP erfolgt, gelten immer und gleichmäßig die definierten Zugriffsbeschränkungen (und sonstigen Konfigurationen). Ein "deny from all" sperrt den Zugriff auch für den auf derselben Maschine eingesetzten Browser. Und das ist auch gut so, denn alles andere wäre eine Sicherheitslücke.

Es ist eine vollkommen andere Sache, wenn ein vom Webserver ausgeführtes Skript seinerseits einen Dateizugriff auf das Dateisystem macht (zu beachten ist, dass die Datei dabei letztendlich gar nicht auf der eingebauten Festplatte liegen muß, weil "lokales Dateisystem" auch eingebundene externe Dateiserver sein können, die per NFS, SMB o.ä. Ressourcen zur Verfügung stellen). Hierbei gelten ausschließlich die definierten Zugriffsrechte der Dateien und Verzeichnisse, aber keinesfalls die Beschränkung von HTTP.

Dein Hinweis, dass der IIS macht, was er will, ist obendrein wenig hilfreich - reine Polemik, mehr nicht. Von Sicherheitslücken, die eventuell ausgenutzt werden, haben wir ja nicht gesprochen.

- Sven Rautenberg