Heim  >  Artikel  >  Backend-Entwicklung  >  Warum wurde register_globals in PHP deaktiviert?

Warum wurde register_globals in PHP deaktiviert?

Linda Hamilton
Linda HamiltonOriginal
2024-11-15 10:33:02632Durchsuche

Why Was register_globals Disabled in PHP?

Registrieren von Globals in PHP

Einführung

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.

Beispiele für Register Globals

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'];

Sicherheitslücken

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.

Globales Schlüsselwort

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'
}

Fazit

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!

Stellungnahme:
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