include erzwingen

RaverHH

Mitglied
Hallo an alle,

ich bräuchte einmal einen Denkanstoss. Ist ja auch schon ein wenig später heute. :o) Es geht also um folgendes:

Meine Seiten sind so aufgebaut, daß die index.php mehrere Seiten includet. Die header.php und die foot.php dabei statisch. Der Body Bereich ist variabel und es wird entsprechend einer GET übermittlung mitgeteilt, welche Datei im Body Bereich includet werden soll. Soweit so gut und alles ok.

Doch nun zu meinem Prob: Wenn der User nun herausfindet, wo sich die Body-Dateien befinden dann kann er diese auch direkt aufrufen www.name.de/body/news.php Doch genau das soll verhindert werden. Wenn diese direkt aufgerufen wird, soll der include erzwungen werden, also Ausgabe der news.php nur über die index.php

Kann mir da jemand helfen?

Thanks
 
gibts mehrere Möglichkeiten. Die ersten die mir einfallen ;):

- Verzeichnis per htaccess schützen
- Referer abfragen (nicht unbedingt gut)
- schreibe in deine Index-Datei ein paar Variablen, die du in deinen Includebereichen abfrägst. Wird die Datei direkt geladen, fehlt die Variable und somit kannst du verhindern, dass was angezeigt wird - oder direkt weiterleiten

shutdown
 
Hm,

Die dritte Lösung scheint mir jetzt am besten zu sein. Denn nicht alle Seiten sollen ja vor Zugriff geschützt sein. Per .htacess habe ich erst einmal das Verzeichnis Listing abgeschaltet. und das mit dem REFRER ist wirklich nicht so toll. Immerhin sollte man dan die Proxys denken. :o)

Aber gut, ich werde Deinem Vorschlag mit der Variable in der index.php mal nachgehen und mir etwas zurecht basteln :o)

Thanks
 
Du könntest eins machen:

Du definierst in der index.php vor allem anderen Beispielsweise die Funktion Dummy.
also so
PHP:
function dummy()
{
}

Nun schreibst du in jede Datei die du einbindest ganz oben, das der Code direkt nach dem Include ausgeführt wird:
PHP:
if( ! function_exists('dummy') )
      die('Ungültiger Aufruf!');
 
Jo ok,

so in der Art hatte es shutdown sicherlich auch gemeint, halt nur mit einer Variable. Wenn ich eine Variable einsetzte in der index.php dann könnte ich die ja in den Unterseiten auf existenz prüfen.

Hier mal ein Beispielcode, den ich nachher mal probieren werden:

index.php
PHP:
$test=time(); // Nur als Beispiel, daß da was drin ist
zu includende Datei Bsp. news.php
PHP:
if(!isset($test)||$test="")){
header("location: http://www.seite.de/index.php");
}

Müsste doch auch gehen oder?

Oder gibt es noch andere Möglichkeiten, die dieses automatisieren? Ich denke mal, daß shutdown mit der .htaccess den Zugriffsschutz meinte oder?
 
Müsste auch, darf aber wie gesgat nicht in einer Funktion stehen innerhalb der includierten Datei, da es sonst erst bei Aufruf ausgeführt wird.

Ansonsten try & error ;)
 
Ja , das ist mir schon klar.

Wenn dann müsste das ganz an oberster stelle der zu includierenden Datei stehen, bevor überhaupt etwas anderes gemacht wird.

Doch wenn es etwas automatisiertes gibt, so dass man es nicht in jeder Datei prüfen muss, wäre es natürlich besser. Ich glaube dazu muss ich nochmal die Möglichkeiten der .htacess studieren. :o) Vielleicht gibt es ja dazu eine Anweisung?
 
also je nachdem was er alles ansehen darf bauste überall ne variable ein
nimm am besten nen array

im header schreibste
$tmp['header'] = "1";

im body schreibste
$tmp['body'] = "1";

dann frägste im body ab
if($tmp['header'] != "1"){
die(Fehler header konnte nicht geladen werden");
}

und im footer schreibste
if($tmp['body] != "1"){
die("Fehler: body konnte nicht geladen werden");
}

so nun muss er die header laden da er sonst keine andere laden kann
 
Zurück