Schön und jetzt ne Zwischenmeldung von mir:
Wer auch immer für dich Register_Globals auf Off gestellt hat, war schlau. XD
Register_globals=on kann ein unschönes - teilweise sogar heftiges - Sicherheitsrisiko bedeuten, was heißt du solltest all deine anderen Skripte auf dem Server überprüfen, ob sie anfällig sind.
Ein Beispiel....
Code:
if( $Passwort == "wasauchimmer" ) {
$login = true;
};
So, fur alle, die PHP können: Dieses Skript würde schlicht den Parameter Passwort prüfen und dann entsprechend einloggen. Klingt nicht gefährlich und ist für den Aufruf skript.php?Passwort=bla gedacht. Wenn jetzt jemand das Skript aber so aufruft?
skript.php?Passwort=pf&login=1
Richtig. Die Abfrage schert ihn nicht und plötzlich haste eine Variable $login==true drin....
Also, ohne PHP-Kenntnisse: Mit Register_Globals=On ist ein möglicher Angreifer in der Lage, Variabeln auf der Top-Ebene in dein Skript zu schmuggeln. Sind Skripte nicht darauf vorbereitet, ist das... nicht nett.
Nicht umsonst ist die Einstellung nicht empfohlen.
Ok, ich will das jetzt auch nicht hochschaukeln, denn damit die Sicherheitslücke da ist, müssten Skripte nicht darauf vorbereitet sein (was ich von guter Software erwarten würde) und der evtl. Angreifer müsste die Software kennen, die du verwendest. Aber MÖGLICH wär's...
Zu dem Shopping-Skript. k, dumm wenn die das brauchen. Man könnte sie ja anhalten, das umzuschreiben - groß wäre die Mühe nicht. Ansonsten könnte man es - solang man das Recht hat - ja selbst umschreiben.
Als letzte Möglichkeit bliebe - jedoch abhängig davon, wie das Skript so funzt, dem Skript einfach das zu geben, was es braucht, und das ohne Register_Globals=On....
Dazu brauchste die Argumente - und nur die-, die das Skript irgendwann braucht.
Code:
<?php
$Argument1 = $_REQUEST["Argument1"];
$Argument2 = $_REQUEST["Argument2"];
?>
Dass kann man oben in die Datei des Skripts reinschmuggeln oder vor n Include-Befehl legen.
Aber ohne bissl Ahnung von PHP wird das nix...