Heim > Backend-Entwicklung > PHP-Tutorial > Warum ist Register_Globals in PHP gefährlich?

Warum ist Register_Globals in PHP gefährlich?

Barbara Streisand
Freigeben: 2024-11-17 19:27:02
Original
957 Leute haben es durchsucht

Why is Register_Globals Dangerous in PHP?

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
Nach dem Login kopieren

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
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage