php datei vor manuellem öffnen schützen?

Josh

Legendäres Mitglied
hallo.

um meine codes etwas übersichtlicher zu machen splitte ich grosse dateien oft in kleinere segmente, welche ich dann include.
das problem ist dabei nur, dass jm z.b. eine solche datei manuell versuchen könnte zu öffnen per direkter eingabe des dateinamens in den browser! dies möchte ich natürlich auf keinen fall zulassen.
gibt es eine möglichkeit, solche unerwünschte "direktöffnungen" zu blockieren, damit die datei nur per include geparsed und angeschaut werden kann?

danke für tipps und tricks und chips und drinks und snacks!
laugh.gif


gruss
josh
 
Mein Kollege hier meint, dass es auch möglich ist, eine include-datei in einem Folder zu haben, der gar nicht direkt via Browser zugänglich ist. z.B. in einem Verzeichnis das dem Web-Verzeichnis übergeordnet oder benachbart ist. Hängt natürlich vom Hoster ab. Manche erlauben via FTP nur Zugriff auf das Web-Verzeichnis
 
Wenn du zB DB Passwörter extern hältst, kannst du einfach die Endung file.inc.php geben, somit wird das File bei einem direkten Aufruf geparsed, und gibt hächstwahrscheinlich einen Error aus... Wichtig ist ja nur, dass du das File nicht aufrufen kannst (wenn es file.inc heisst) und dann den PHP code als Text siehst...

Gruss Sandro
 
Wird denn der Code nicht geparsed beim direkten Aufruf? Wenn ja, kann ja gar kein Code erscheinen?!
 
@brauchli: häuffig werden die Includes mit der Endung .inc o.ä abgespeichert. Und die werden natürlich nicht geparsed.
Ausserdem gibt es beim direkten Aufruf eines Includes im Browser u.U. eine Fehlermeldung, was Rüchschlüsse auf Datenbanken, Variablen etc. zulässt.



Ich lege meine Includes meistens in einem Ordner namens Includes ab und nehme die Endung .php

Ausserdem werden keine Errors angezeigt ausser wärend meiner Entwicklungsphase.

Ich versuche (bin aber zu wenig konsequent), wenn ich am Arbeiten bin display_error auf on zu setzen und wenn ich aufhöre, auf off.

Franz
 
Ja das ist eine Sache mit dem .inc, darum sind viele Programmierer auf die Endung .php umgestiegen was ich auch gut Empfehlen kann.
 
Hallo,

ist zwar schon ewig alt der Beitrag aber:

wir wäre es denn mit:

if($_SERVER['PHP_SELF'] == str_replace($_SERVER['DOCUMENT_ROOT'],'',__FILE__))
die();

gruesse muell
 
Zurück
Oben