Jetzt kommt es dicke HILFE

V

Venomsen

Ich dank euch allen schonmal im voraus fürs lesen und helfen.

Erstmal die Fakten:
Server = Apache 1.3.x
PHP = 4.5.x.xRC irgendwas
mySQL = 4.1.1a - alpha
Mail = keinen

Ich habe zwei Fragen an die Tutorials Community => ?
1.te Frage (längster Teil)

Auf meinem Server nutzte ich das Linksystem im folgenden Abschnitt

index.php?id=link

dabei wird auf php Dateien in einem Ordner Namens content gelinkt
in der auch die header.php liegt und die footer.php

hier mal schnell der Code meiner index.php

PHP:
<?php 
    $id = $_GET["id"]; 
    if(!$id) include("content/welcome.php"); 
    else 
    include("content/".$id.".php");
?>

funtzt ja alles ganz prachtig solang ich nur auf die dateien in diesem content
ordner linke, mein problem ist ich würde nun auch gerne noch andere dateien
die nicht in diesem Ordner über dieses System linken.

Ich hab da mal en link auf ein bk gemacht alles drin was bis jetzt up is?
Link zum Index vom Ordner

Weil ich zb einen Chat laufen habe auf der seite oder ein forum was scripte sind von phpMyChat und phpBB und diese bekomme ich nicht in dieses system rein wie die header zeigt oder unten

<----------------Banner------------------>
Menu | | Anzeige block
Menu | | Anzeige block
Menu | | Anzeige block
Menu | | Anzeige block
Menu | | Anzeige block
Menu | | Anzeige block

naja nicht wirklich hilfreich :rolleyes:

mehr fällt mir hier nicht mehr ein, wie ich mein problem noch beschreiben könnte
Ich bin auch bereit komplett umzustruckturieren ws PHP angeht bloss mit dem Templatesystem hab ich fast 0 erfahrung bin aber recht schnell im kapieren von solchen dingen (ehrlich) :p . Also wenn über Template oder irgendwas womit ich das hinbekomme sagt es mir ich werd es schon schaffen MIT EURER HILFE wenn ihr den so gnädig werd (BITTE BITTE) .

P.S. : Der Webserver ist ist auf meinem Rechner installiert also kein Anbieter
Sofort Kontakt: ICQ : 200717315

Binn euch schonmal jetzt zu tausend Dank verplichtet....
Ihr konntet mir bis jetzt immer helfen ! Wenn fragen bestehen fragt ich bin für alles offen
 
Original geschrieben von Venomsen
PHP = 4.5.x.xRC irgendwas
Huch, wo hast Du das denn her? Offiziell wurde erst die Version 4.3.5RC3 veröffentlicht ;)

Original geschrieben von Venomsen
funtzt ja alles ganz prachtig solang ich nur auf die dateien in diesem content
ordner linke, mein problem ist ich würde nun auch gerne noch andere dateien
die nicht in diesem Ordner über dieses System linken.
Hm, also so wie ich Dich verstehe, is das ganze kein generelles PHP Problem. Vielmehr solltest Du dich mal mit Ordnerstruktueren und Pfadangaben vertraut machen.
 
LOL

Zahlendreher :p passiert
mann ihr seit so schnell damn Respekt

Also du meinst sozusagen ich soll den Content Ordner weglassen alle files in den root hauen und es dann nochmal versuchen?

Da ist das weite Prob ich müsste es einiger masen übersichtlich hinbekommen
weil soll am Ende ne CS-Liga seite werden und da kommt noch einiges?!

Wären da Templates besser?
 
Re: LOL

Original geschrieben von Venomsen
Also du meinst sozusagen ich soll den Content Ordner weglassen alle files in den root hauen und es dann nochmal versuchen?
Nein, das hab ich nirgendwo gesagt. Natürlich kannst Du das machen, aber so wirst Du mir der Zeit (wenn mehrere Seiten dazu kommen) immer mehr den Überblick verlieren. Templates werden Dir aber nicht die Ordnetstruktur abnehmen, im Gegenteil: Wenn du Templates verwenden willst, ist eine gut durchdachte Ordnerstruktur ebenfalls von Vorteil.
 
Ich verstehe nicht ganz,. warum Du das Problem nicht selbst gelöst bekommst. Du hast Doch explizit festgelegt, dass bei der Übergabe der ID eine gleichnamige PHP-Datei aus dem Ordner "Content" includet werden soll. Wenn Du das so nicht mehr möchtest, dann stehen dir doch verschiedene Wege zur Verfügung, das ganze anders zu regeln.

Übergib zum Beispiel einen weiteren Parameter, der Dir den Ordner angibt. Oder definiere irgendwo, dass bestimmte IDs aus ganz anderen Ordnern geholt werden sollen. Deiner Kreativität sind dabei keine Grenzen gesetzt.

Aber an eines solltest Du Dich halten: Lasse nicht zu, dass der Benutzer aus den definierten Ordnern "ausbrechen" kann. in Deinem geposteten Code-Beispiel ist das nämlich ohne Weiteres möglich. Übergebe ich als ID z.B. ../andere_datei, so wird versucht content/../andere_datei.php zu includen. Da Du den zu includenden Dateityp auf .php festgelegt hast, ist die Gefahr, dass dabei etwas schlimmes passiert recht gering, dennoch sollte man einem möglichen Angreifer dieses Potential entziehen.

mfg, snuu
 
Original geschrieben von snuu
Da Du den zu includenden Dateityp auf .php festgelegt hast, ist die Gefahr, dass dabei etwas schlimmes passiert recht gering, dennoch sollte man einem möglichen Angreifer dieses Potential entziehen.
Aber auch nur, weil er seinen /content/ Ordner davor hängen hat. Hätte er ein generelles include($id.".php"); so wäre es ja ein leichtes, mal eben knackig auf seinem Server http://meinserver.tld/meinscript.php auszuführen und DAS willst du nicht wirklich. Da geht das Gefahrenpotential schnell in Größenordnungen, die du nicht mehr verantworten möchtest (wenn der Server "einigermaßen" lasch eingestellt ist) ;).

Deshalb mein Tip, NIEMALS include Pfade aus Variablen zusammensetzen, die aus der URL kommen. Dann lieber über zig if oder switch Anweisungen das ganze Stück für Stück absolut und selbst zusammensetzen.
 
Danke

Ich danke euch damit habt ihr mir wirklich weiter geholfen diese Gefahren waren mir nicht wirklich bewust ich werd den Spass jetzt lieber auf if und switch umsetzen, kann mir dann wenn die Seite Online geht keine Fehler mehr erlauben. Nochmal ein dickes Danke an euch Leute ihr seit die besten

:rolleyes: :) :p :-)

C ya all
 
Zurück