Register_Globals in PHP verstehen
Die register_globals-Direktive von PHP wirft Fragen zu ihrer Natur und Funktionalität auf. Lassen Sie uns genauer darauf eingehen:
Was sind Register_Globals?
Register_globals ist eine Konfigurationseinstellung, die automatisch globale Variablen aus Elementen im $_REQUEST-Array erstellt. Beim Absenden eines Formulars sind Variablen im PHP-Skript mit Namen zugänglich, die dem „Name“-Attribut des Eingabefelds entsprechen.
Wenn beispielsweise „register_globals“ aktiviert ist und ein Formular ein Benutzernamensfeld sendet, wird der Ausdruck ($username = == $_POST['username']) würde als wahr ausgewertet werden.
Sicherheitsimplikationen
Register_globals birgt erhebliche Sicherheitsrisiken, da es böswilligen Benutzern ermöglicht, Variablen unbefugt zu manipulieren Validierung. Durch das Anhängen von „?authorized=1“ an eine URL könnte ein Angreifer beispielsweise Autorisierungsprüfungen umgehen.
Globale Schlüsselwortunterscheidung
Im Gegensatz zu register_globals ermöglicht das globale Schlüsselwort dies Auf Variablen, die außerhalb des Gültigkeitsbereichs einer Funktion deklariert wurden, kann innerhalb dieser zugegriffen werden. Globale Variablen müssen explizit mit dem Schlüsselwort global deklariert werden, bevor sie verwendet werden können.
Zum Beispiel verwendet der folgende Code globales $foo, um auf eine Variable zuzugreifen, die außerhalb der Buzz()-Funktion deklariert wurde:
$foo = 'bar'; baz(); function baz() { echo $foo; // PHP warns about using an uninitialized variable } buzz(); function buzz() { global $foo; // Enables use of $foo in this scope echo $foo; // Prints 'bar' to screen }
Das obige ist der detaillierte Inhalt vonIst die register_globals-Direktive von PHP ein Sicherheitsrisiko?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!