Includes mit .htaccess

Hallo,

ich habe eine kurze Frage zum Thema „Includes“. Ich habe auf der Webseite http://de.wikihow.com/Ein-sicheres-Login-Skript-mit-PHP-und-MySQL-erstellen unter Teil 3 von 8 gelesen, dass es das beste ist, die Logindateien (Im Beispiel psl-config.php usw.) außerhalb vom Root-Verzeichnis zu speichern. Glaubt ihr, dass es sicher genug ist, wenn man sie mit einem .htaccess („deny from all“) schützt?

Vielen Dank schon mal im voraus :slight_smile:

Sofern dein Webserver richtig eingestellt ist rückt er Inhalt von *.php Dateien niemals raus.
Deshalb solltest du sie mindestens mit der Endung .php speichern.

Ich habe bei mir noch einige Einstellungen am Webserver vorgenommen um ein bisschen mehr Sicherheit zu schaffen!
Hierzu zwei Links:
[ul]
[li] http://www.daniel-ritter.de/blog/10-masnahmen-um-einen-root-lamp-server-abzusichern [/li][li] https://www.cais.de/apache/2-4-absichern [/li][/ul]

Oh, Entschuldigung, ich habe vergessen zu schreiben, dass ich keinen eigenen Webserver verwende, sondern mir nur einen Webspace angemietet habe. :oops:

Das heißt dann wohl, dass bei meinem angemietetem, richtig eingestelltem Webspace sowieso keine .htaccess nötig ist, da er die Dateien sowieso nicht zeigt.

Normalerweise nicht. Es sei denn du hinterlässt später eine Sicherheitslücke irgendwo in deinem Skript die es ermöglicht deine *.php - Datei auszulesen. Den Fall gab es 2007 mal in der Version 4.01.02 des CMS webSPELL. Wenn man in die Adresszeile folgendes eingeben hat,

picture.php?file=_mysql.php

waren im Quelltext die Verbindungsdaten offengelegt. Ziemlich doofer Programmierfehler. Sollte dir also nicht passieren.

Danke für die Hilfe,

ich werde aufpassen, dass mir nicht das gleiche passiert wie webSPELL.

Dieser Eintrag kommt etwas spät, passt aber so grob zum Thema includes. Anscheinend ist es möglich PHP-Skripte durch die Funktionen include() und readfile() von einem anderen Webserver aus zu includieren oder auszulesen.

Mal angenommen jemand würde versuchen durch ein PHP-Script mit einer include- oder readfile-Funktion auf seiner Internetseite, den Inhalt meiner PHP-Skripte durch includieren und auslesen herauszubekommen. Wäre das möglich und wenn ja, wie könnte ich mich dagegen schützen? Ich hab gelesen, dass es bei einigen Providern die Möglichkeit gibt die Include-Dateien außerhalb des Root-Verzeichnises zu speichern, damit sie mit einer „normalen“ URL nicht erreichbar sind. Gibt es da noch eine andere Lösung?

Danke für die Hilfe :slight_smile:

Hier was dazu.
https://www.google.de/url?sa=t&source=web&rct=j&ei=85sUVbzDOoXUat7SgvgD&url=http://stackoverflow.com/questions/2752783/including-php-file-from-another-server-with-php&ved=0CBwQFjAA&usg=AFQjCNFFdMYjUCGdcElTawwsUphCeyyb4A&sig2=4UbQXC1b2WJu0hZCnaKj5w

Also meines Erachtens nach kein Grund zur Sorge.

Danke für die Antwort. Aber was passiert wenn der jemand die Einstellung allow_url_fopen und allow_url-include auf On setzt bzw. diese Einstellung gilt doch eigentlich nur für mich nicht für meinen Angreifer.

Nein das ist nicht möglich, der Angreifer würde nicht deinen PHP-CODE bekommen sondern die Ausgabe was auch bei dem Aufruf der Url im Browser geliefert wird. Ein HTTP request läuft ja immer durch den Interpreter. Das wäre ja eine untragbare Sicherheitslücke in PHP.

Die einzige Gefahr die durch allow_url_include besteht ist das jemand seinen Code auf deinem Server ausführen könnte, aber dazu müsste er erstmal Zugriff auf die include Funktion haben.
Das hat er nur bei einem grob Fahrlässigen Programmfehler wie etwa wenn du über einen GET oder POST den include füllen würdest.
z.B.: include($_GET[‚url‘])

Ich kann dir gerne auch einen vollständigen Sicherheitscheck anbieten :smiley:

Es ist also auch nicht möglich, dass jemand wenn er seinen Server richtig eingestellt hat meinen, Code bei sich ausführt, denn da hätte er ja die include-Funktion zur Verfügung?

Danke für dein Angebot nookie, wenn ich fertig bin melde ich mich.:slight_smile:

Das Problem hat sich erledigt. Ich hab herausgefunden, dass ich die Domain bei vielen Providern auf ein Unterverzeichnis umleiten kann. Speichere ich dann meine Include-Dateien außerhalb des Verzeichnisses auf das die Domain zeigt, ist es doch eigentlich so als ob ich sie außerhalb des Root-Verzeichnisses gespeichert hätte. Fall gelöst!:cool: