php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Register Globals ändern... was ist zu beachten?


 
icecream
13-03-2006, 19:47 
 
Hallo,

ich habe des Öfteren gelesen, dass man unbedingt register_globals auf "off" stellen soll... nun habe ich bemerkt, dass meine an sind.

Ich werde meinen Hoster kontaktieren und ihm sagen, dass er doch bitte die Änderungen vornehmen soll, aber ich würde gerne wissen:

- Was kann passieren?
- Unter welchen Umständen?
- Mit "Was kann passieren" ist natürlich die Funktionalität meiner Scripts gemeint ;)

Gruß
icecream

 
icecream
01-04-2006, 18:09 
 
Aja! ^^ Wollte dazu sagen, dass ich für Formular-Daten nur $_GET[''] und $_POST[''] benutze, habe mir auch schon ein paar Sachen durchgelesen.... muss ich nochwas beachten?

gruß
icecream

 
jahlives
07-04-2006, 02:22 
 
Was kann passieren ?

Nimm mal folgendes Script

//index.php
if(isset($_SESSION['loggedIn'])){
$loggedIn = true;
}
if($loggedIn == true){
echo 'Hochgeheime Infos';
}else{
echo 'Raus du Spinner';
}

Wenn ich dir jetzt das File so aufrufe

index.php?loggedIn=1

so bin ich drinn. Obwohl ich die Session gar nicht habe
In so einem Fall hast du mit globals_on folgende Möglichkeiten
1. Saubere Initialisierung der Var und belegen mit Wert

$loggedIn = false;
//Rest des Codes

2. Neben dem Vergleich der Var auch eine Typenprüfung (Vars von $_GET und $_POST sind IMMER Strings)

if($loggedIn === true){
echo 'Hochgeheime Infos';
}

Also ich würde immer meine Vars initialisieren. Und ich würde aber auch bei Vergleichen, zumindest wenn register_globals on sind, auch auf Typengleichheit prüfen.

Gruss

tobi

 
Benny-one
07-04-2006, 08:47 
 
Original geschrieben von jahlives

//index.php
if(isset($_SESSION['loggedIn'])){
$loggedIn = true;
}
if($loggedIn == true){
echo 'Hochgeheime Infos';
}else{
echo 'Raus du Spinner';
}

Also ich finde deinen Code schon so schrecklich, denn vernünftigerweise hätte man es so geschrieben:
//index.php
if(isset($_SESSION['loggedIn'])){
echo 'Hochgeheime Infos';
}else{
echo 'Raus du Spinner';
}Denn dann ist es egal ob RegGlo on ist oder nicht und im Falle von ON wäre es immer noch sicher.

 
jahlives
10-04-2006, 06:20 
 
Also ich finde deinen Code schon so schrecklich, denn vernünftigerweise hätte man es so geschrieben:
Ich habe ned behauptet, dass dieser Code gut wäre ;) Es ging nur drum ein Bespiel zu zeigen, wie man bei Reg Glo on Vars in den Code bringen kann, mit Werten die dort gar nichts zu suchen haben.
Überigens würde diese Zeile

if($loggedIn === true){
echo 'Hochgeheime Infos';
}

das Problem auch lösen (und drumm habe ich es auch geschrieben). Wenn man alle seine Vars sauber initialisiert, dann könnte man auch mit register_globals on leben, oder ?

Gruss

tobi

 
wahsaga
10-04-2006, 10:39 
 
Original geschrieben von jahlives
Wenn man alle seine Vars sauber initialisiert, dann könnte man auch mit register_globals on leben, oder ?
Ja - aber eben auch ohne, oder? :-)

 
jahlives
12-04-2006, 07:27 
 
original geschrieben von wahsaga
Ja - aber eben auch ohne, oder? :-)

Ich lebe schon lange Zeit gut ohne globals on. Warst glaub ich sogar du, der mir diesbezüglich in einem meiner ersten Posts hier den Kopf gewaschen hast :) (könnte aber auch Haxe gewesen sein)

Gruss

tobi

-archiv-

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:33 Uhr.