Include Fehler Umgehung

Nord-Süd-Richtung

Erfahrenes Mitglied
Hallo Com
Ich versuche include Fehler zu vermeiden um Usermanipulationen nicht zuzulassen.
Leider wird immer die home.php included.
PHP:
function content()
	{
         if(!isset($_GET['page']) || !file_exists($_GET['page'].'.php.'))
         	{$_GET['page'] = "Home";}
	if(!include($_GET['page'].'.php'))
         	{include("Home.php");return 1;}
         }
 
Moin,

da ist ein Punkt hinter php...soll der dort sein?
Code:
if(!isset($_GET['page']) || !file_exists($_GET['page'].'.php.'))

Ansonsten:
Ich befürchte, damit ermöglichst du Manipulationen erst recht, denn sofern ein User den Pfad/Namen kennt, kann er so beliebige Dateien einbinden.

Definiere lieber ein Liste von erlaubten Werten für $_GET['page'] und prüfe diese.
 
Danke.
Hatte schonmal den selben Fehler aber nach 4-5h coden übersieht man sowas mal schnell.
Danke nochmal :)
edit:
Ok, das stimmt schon, aber ich denke die sind schwer herauszufinden.
Und gewollte Pfadangaben kann er auch direkt eingeben.
Oder habe ich dich falsch verstanden?
 
Ok, das stimmt schon, aber ich denke die sind schwer herauszufinden.
Und gewollte Pfadangaben kann er auch direkt eingeben.
Oder habe ich dich falsch verstanden?

Naja...aber beim Aufruf per HTTP kommt manchmal ein anderes Ergebnis als per Dateisystem....und diverse Sachen sind garnicht so schwer herauszufinden, stelle dir bspw. mal vor, er würde über GET['page'] den Server nach .htpasswd durchforsten, dann wäre er schon auf halbem Weg drinnen bei dir.

Oder noch schlimmer:
Wenn es bei dir möglich ist, Dateien hochzuladen, z.B. Bilder...eigentlich egal was:

Angenommen ich lade eine .txt-Datei hoch mit PHP-Code...

Rufe ich diese per HTTP auf, sehe ich PHP-Code. Include ich die über dein Skript, wird der Code ausgeführt :eek:
Dies geht auch mit Bildern...man kann diverse Grafikformate mit Kommentaren versehen(wir hatten dies unlängst in einem Thema erörtert), dieser kann auch aus PHP-Code bestehen.
Rufe ich das Bild per HTTP auf, sehe ich ein Bild.
Inklude ich es über dein Skript....na du weisst schon :)

Deswegen: Lege genau fest, was dort inkludet werden darf, sonst hast du ganz schnell Skriptkiddies am Hals.
 
Zurück