PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : php4 include problem



Mr.Bo
09.03.06, 23:19
Hallo

habe in meiner index das hier stehen damit die inclueds in das fenster kommen :

<?php
$_GET['site'];
if ($site != NULL) {
if (file_exists($site. ".php")) { include($site. ".php");} else { include("news.php");};
} else {include("news.php");};
?>

und als include befehl nehme ich:

<?php
include("server/server.php");
?>

wenn ich register_globals an mache ist das auch alles kein problem jedoch ist mir das risiko mit register_globals zu hoch

Also meine frage an euch wie kann ich den include zum laufen bringen ohne register_globals zu aktivieren

Mfg

Mr.Bo

marce
10.03.06, 07:14
wird denn die Variable überhaupt per GET übergeben?

MiGo
10.03.06, 11:01
Das soll vermutlich so heissen:
$site = $_GET['site'];
oder? Ansonsten gilt auch für php: Fehlermeldungen werden nicht nur ausgegeben, weil das Fenster sonst so leer wirkt...

P.S.: Ich würde die Sache noch wesentlich restriktiver coden; wenn es einer schafft, dir eine beliebige php-seite in z.b. /tmp unterzuschieben, führt dein Code die völlig blind aus...

Mr.Bo
10.03.06, 13:30
Ja ich bin nicht so gut in php aber könnt ihr mir ein paar tips geben oder nen code das es auch alles geht sitze schon ne weile an dem problem und komme nicht weiter

Mfg

Mr.Bo

marce
10.03.06, 13:46
öhm, für Schulungen sind wir hier nicht wirklich zuständig. Würde Dir ein gutes Buch empfehlen...

w-s-p
10.03.06, 14:00
MiGo hat es doch schon geschrieben:

$site = $_GET['site'];
Ansonsten ersetze jedes $site durch $_GET['site']... :ugly:

Mr.Bo
10.03.06, 19:19
ja dann kann ich eigentlich genausogut registrer globals anmachen ist alles unsicher bei php oder wie

marce
11.03.06, 12:03
Nein, ist es nicht - ich würde echt empfehlen, Dir ein gutes Buch zu besorgen - welches diese Grundlagen erklärt.

Nur so viel: mit der Methode bis Du immerhin selbst dafür verantwortlich, welche Variablen Du von extern einliesst - bei register globals on macht der Webserver das für dich...

MiGo
11.03.06, 12:47
ja dann kann ich eigentlich genausogut registrer globals anmachen ist alles unsicher bei php oder wie
Nein, du solltest nur dringend Programmieren lernen. Und ein wenig beim code-Schreiben mitdenken.
Die Gefahr bei register_globals ist, dass Variablen von aussen gesetzt werden, von denen du es nicht erwartest.
Wenn du allerdings blind Benutzereingaben akzeptiert und ausführst, kannst du safe_mode, register_globals etc. so lange anmachen, wie du willst - das Loch in die Sicherheit machst du selber.
Die erste Regel beim Schreiben von Software auf Webservern:
"Jedes Byte, das von aussen kommt, ist ein Angriff". Oder kann zumindest einer Sein.
Wenn du dich daran nicht hälst, kannst du deinen Server recht fix neu aufsetzen ;)