Register_Globals und das globale Schlüsselwort in PHP verstehen
Bei der Arbeit mit Webanwendungen ist es wichtig, die Konzepte von register_globals und das globale Schlüsselwort in zu verstehen PHP.
Was ist Register_Globals?
Die Anweisung register_globals registriert automatisch die Elemente des $_REQUEST-Arrays als Variablen. Dies bedeutet, dass auf alle über Formulare übermittelten Daten (entweder über POST oder GET) sofort als PHP-Variable zugegriffen werden kann, die den Namen des entsprechenden Eingabefelds trägt.
Obwohl diese Funktionalität zunächst praktisch erscheinen mag, stellt sie die Anwendung doch offen Sicherheitslücken. Angreifer können die URL-Abfragezeichenfolge oder übermittelte Formulardaten manipulieren, um beliebige Variablen festzulegen und sich möglicherweise unbefugten Zugriff zu verschaffen. Aus Sicherheitsgründen wird daher dringend empfohlen, register_globals zu deaktivieren.
Beispiel:
Stellen Sie sich ein Szenario vor, in dem Benutzer über ein Anmeldeformular ihren Benutzernamen und ihr Passwort eingeben können. Wenn „register_globals“ aktiviert ist, könnte ein Angreifer Folgendes an die URL anhängen:
?username=admin&password=secret
Dadurch würden automatisch die Variablen $username und $password im PHP-Skript festgelegt, sodass der Angreifer den Authentifizierungsprozess umgehen kann.
Was ist das globale Schlüsselwort?
Das globale Schlüsselwort hat einen anderen Zweck und hat nichts damit zu tun register_globals. Es ermöglicht den Zugriff auf oder die Änderung von außerhalb einer Funktion definierten Variablen innerhalb dieser Funktion.
Beispiel:
$foo = 'bar'; function baz() { echo $foo; // PHP generates a warning as $foo is undefined within this scope } function buzz() { global $foo; // Enables access to the global variable $foo echo $foo; // Prints 'bar' to the screen }
Das obige ist der detaillierte Inhalt vonWarum ist Register_Globals in PHP gefährlich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!