Dennis: Include z.b www.domain.de/index.php?include=news.php

Beitrag lesen

Hi Benne,

vobei zielsitet die seite sein soll die oben in der url steht:
www.domain.de/index.php?include=news.php
in diesem falle news.php .

meinst du etwa
include $_GET["include"];

Das sollte man AUF GAR KEINEN FALL machen!!

Denn damit hast du eine ziemlich große Sicherheitslücke produziert.
Über diese Sicherheitslücke lässt sich
a) alle Dateien ausgeben, auf die auch du Zugriff hast, es besteht
   für den Angreifer also die Möglichkeit an sensible Dateien
   (z.B. Passwort Dateien) dran zu kommen
b) sofern allow_url_fopen auf on steht, lässt sich sogar _beliebiger_
   PHP Code auf dem Server ausführen - ich will gar nicht erst
   sagen, wozu dass alles mißbraucht werden könnte. Die Liste fängt
   beim Versenden von Spam Mails an und hört beim Ausführen von
   weiteren Hacking Angriffen auf andere Server von deiner IP aus
   auf.

Aus diesem Grund: So etwas bloß nicht machen!

So ist es besser:

$pages = array("index",  
               "news",  
               "foobar",  
               "impressum");  
if([link:http://de2.php.net/in_array@title=in_array]($_GET['page'], $pages))  
{  
  include "path/to/the/pages/" . $_GET['pages'] . ".php";  
}  
else  
{  
  include "path/to/the/pages/index.php";  
}

Was hier nun anders ist:

  • Es können nur Seiten included werden, die im Array $pages enthalten sind
  • Es können nur Seiten mit der Endung .php included werden
  • der paht/to/the/pages/ vorne dran macht ein Einbinden von Scripten
      über http:// unmöglich

MfG, Dennis.

--
Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
Man kann die Menschen zur Vernunft bringen, indem man sie dazu verleitet, daß sie selbst denken. (Voltaire)