Nightstalker
ctrl+alt+del
|
Hi vielleicht hab ich mich unverständlich ausgedrückt, also folgendes Problem hab ich grade. Ich hab ne Seite, ich lade per über ein Include an einer bestimmten Stelle eine andere Seite (den Text in dem Fall). Zuerst Definiere ich die Startseite und setze die Variable <?php
if ($page=="") $page="intro.html";
?>
Dann lade ich an der Stelle alle anderen Seiten mit ?page=datei.php <?php
include($page);
?>
Diese Methode ist eigentlich gut, jetzt will ich aber eine Seite einbauen die 4 Links hat, wenn man auf einen der Links klickt soll auf der gleichen Seite, darunter, der Inhalt der verlinkten Seite angeziegt werden. Wie kann ich das lösen? Bitte um Tipps! TIA
|
mat
AdministratorLegends never die
|
durch einen 2ten parameter?
ca. so: ?page=index.html&sub=link1.html
btw: vergiss nicht die parameter durchzuchecken, damit ein zugriff auf andere dateien deines webspaces oder vl auch deines betriebssystems verhindert wird. meist reicht die fixe angabe der extension. zB ?page=index reicht ja vollkommen, wenn deine pages alle .html sind.
|
Maehmann
OC Addicted
|
Wenn ich das richtig verstehe, hast du zwei seiten ... die hauptseite und die seite die inkludiert wird. Auf der inkludierten seite gibts 4 Bereiche und du willst mit den Links zu bestimmten Bereichen springen?
Dann kannst du doch einfach mit Html Ankern arbeiten ... und mittels ?site=test#1 oder #2 dann an die entsprechenden stellen springen.
|
Nightstalker
ctrl+alt+del
|
Also es sieht folgendermaßen aus:
index.php ist quasi die Seite mit dem Menü und allem rundherum. In die Seite werden dann die einzelnen Inhalte inkludiert. Eine der zu inkludierenden Seiten hat 4 Links im oberen Bereich (so wie eine Navigationsleiste eben).
Nun soll wenn man auf einen der Links klickt auf der gleichen seite, der Inhalt der verlinkten html Seite geladen werden, der obere Balken soll aber bleiben.
Index.php?page=navi.html
und dann soll eben, an einer vorgegebenen Stelle auf navi.html je nachdem welchen link man klickt eine von 4 Seiten geladen werden.
Hoffe das war einigermaßn verständlich.
|
Maehmann
OC Addicted
|
okay ... jetzt versteh ichs Na dann mach das menü mit den 4 Punkten einfach einzeln und inkludierst es dann in jeder der vier Seiten ... also ein include im include so zu sagen. ich kann nur noch einmal an mats post erinnern ... du _musst_ unbedingt überprüfen, welche inhalte includet werden ...
|
Nightstalker
ctrl+alt+del
|
ho ho i'll try
|
DJ_Cyberdance
Here to stay
|
Vielleicht sollte man erwähnen, daß Du Seiten auch so nachladen kannst: if ($page == 1)
header("location: index1.html");
else
header("location: index2.html");
Voraussetzung ist, daß noch kein HTML-Header übertragen wurde, dh. es darf vor dem <?php-Tag kein Zeichen stehen und nach diesem Tag kein Output erfolgen. Also wenns um eine Seite ohne Output geht, kann man da schöne if-then-else oder sostige Konstrukte zur Ermittlung der aufzurufenden Seite basteln.
|
Tex
got r00t?
|
if ($page == 1)
header("location: index1.html");
else
header("location: index2.html");
wozu soll das gut sein? warum verlinke ich da nicht gleich zu index1.html bzw. index2.html?
|
Nightstalker
ctrl+alt+del
|
Wie kann ich denn die "Sicherheit" prüfen und worauf muss ich denn noch achten? Ich hab die Befürchtung ich überseh was. Vielleicht kann mir wer eine kurze Zusammenfassung der Probleme die bei dieser Form von PHP Anwendungen auftreten können geben damit ich das alles prüfen kann!? Ach ja, ich hätt noch eine Lösung gefunden, kann ich es so machen: index1.php?a=menue.html&b=inhalt.html
Wie muss ich die Var. dann definieren und wo soll ich sie integrieren? tia
|
Maehmann
OC Addicted
|
ich habe das überprüfen bisher immer so gelöst, dass ich einfach überprüft habe, ob ein erlaubter Wert übergeben wurde. Also zB überprüfen, ob es sich um eine Zahl im erlaubten Bereich handelt oder wenn eine datei inkludiert werden soll, ob diese auf der Festplatte vorhanden ist. Oder du kannst gegen eine Whitelist von Werten prüfen usw. ... da kannst du "kreativ" sein
|
Nightstalker
ctrl+alt+del
|
Naja fehlende Links befürchte ich ja eher nicht falls du das meinst, ich mein eher Sicherheitslücken, wie und wo könnten die entstehen? Muss ich da auf was aufpassen?
|
Luzandro
OC Addicted
|
hab auch nichts dagegen, meistens weiß man eh nicht ob und was man schreiben soll
das allein ist allerdings genauso gefährlich, weil ich könnte dann zB irgendein text-file angeben, was auf der platte liegt und von php lesbar ist und schon wirds mir im browser angezeigt.. also wenn du sowas machst, würd ich zu einer whitelist raten, damit du auch nur explizit die paramter erlaubst, die du brauchst und nicht irgendwas vergisst..
|
Nightstalker
ctrl+alt+del
|
Es liegt eigentlich "nix" auf der Platte, läuft ja auch einem Webserver, die sollten Ihre Daten ja gesichert haben, zugegriffen kann (wenn) dann nur auf die Daten auf diesem Server werden.
Wie mach ich so eine Whitelist? bzw. wie soll die aussehen? Ich hab ein paar html Seiten, ein paar PHP Seiten und Bilder. Einige Pages werden eben mit includes geladen, mehr ist es momentan nicht.
|
Luzandro
OC Addicted
|
shared memory ist sowieso sch****, lieber in ne graka investieren, bei minimalen anforderungen z.b. ne geforce 6200...
"wird scho nix sei" ist nicht immer die optimalste sicherheitsstrategie zugegriffen kann (wenn) dann nur auf die Daten auf diesem Server werden. ja, wenn du überprüfst, dass keine remote-files inkludiert werden - sonst kann ich irgendeinen code auf deinem server ausführen, das willst du ja auch nicht Wie mach ich so eine Whitelist? bzw. wie soll die aussehen? Ich hab ein paar html Seiten, ein paar PHP Seiten und Bilder. Einige Pages werden eben mit includes geladen, mehr ist es momentan nicht. [/B] schau dir mal das an: http://www.php-faq.de/q/q-security-variablen.html
|
Maehmann
OC Addicted
|
das allein ist allerdings genauso gefährlich, weil ich könnte dann zB irgendein text-file angeben, was auf der platte liegt und von php lesbar ist und schon wirds mir im browser angezeigt.. Schon klar ... aber es geht ja primär darum, keinen fremdcode ausführen zu lassen ... wenn ich überprüfe, ob das file in meinem htdocs ordner liegt, kann schon mal "wenig" passieren ... Es ist halt immer abzuwägen, welche sicherheit wirklich nötig ist und wie der Aufwand dazu aussieht.
|