Heim > Artikel > Backend-Entwicklung > Warum wurde register_globals in PHP deaktiviert?
In PHP war register_globals eine interne Einstellung, die automatisch Variablen aus dem superglobalen Array $_REQUEST registrierte. Aus Sicherheitsgründen war es jedoch standardmäßig deaktiviert.
Wenn register_globals aktiviert war, konnte mit demselben direkt auf Eingabefeldwerte von POST- oder GET-Anfragen als Variablen zugegriffen werden Geben Sie als Eingabefeld den Namen ein. Zum Beispiel:
<form method="post"> <input type="text" name="username"> <input type="submit"> </form>
Wenn register_globals aktiviert ist, würde der folgende PHP-Code am Anfang des Skripts als „true“ ausgewertet werden:
$username === $_POST['username'];
Register_globals eingeführt schwerwiegende Sicherheitslücken. Beispielsweise könnte ein Angreifer einen Abfragezeichenfolgenparameter wie „?authorized=1“ an eine URL anhängen, um Autorisierungsprüfungen zu umgehen.
Im Gegensatz zu register_globals verfügt das globale Schlüsselwort über einen anderen Zweck. Es wird verwendet, um innerhalb einer Funktion auf Variablen aus einem anderen Bereich zuzugreifen. Zum Beispiel:
$foo = 'bar'; function baz() { // Attempting to use $foo here will trigger a warning echo $foo; } function buzz() { global $foo; // Declares that $foo is a global variable echo $foo; // Prints 'bar' }
Während register_globals aufgrund seiner Sicherheitsrisiken nicht mehr verwendet wird, bleibt das Schlüsselwort global ein nützliches Werkzeug für den Zugriff auf Variablen in verschiedenen Bereichen.
Das obige ist der detaillierte Inhalt vonWarum wurde register_globals in PHP deaktiviert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!