Heim  >  Artikel  >  Backend-Entwicklung  >  Warum gilt REGISTER_GLOBALS in PHP als Sicherheitsalbtraum?

Warum gilt REGISTER_GLOBALS in PHP als Sicherheitsalbtraum?

Barbara Streisand
Barbara StreisandOriginal
2024-10-26 05:36:02189Durchsuche

Why is REGISTER_GLOBALS Considered a Security Nightmare in PHP?

REGISTER_GLOBALS: Warum wird es verachtet?

Bei den häufigen PHP-Entwicklern ruft die bloße Erwähnung von REGISTER_GLOBALS eine emotionale Reaktion hervor, ähnlich einer Begegnung mit der Pest. Aber warum so große Abneigung gegen diese spezielle Einstellung?

Die Gefahren von REGISTER_GLOBALS

REGISTER_GLOBALS ermöglicht den Zugriff auf alle über GET oder POST übergebenen Variablen als globale Variablen innerhalb eines Skripts . Diese scheinbar harmlose Funktion birgt eine versteckte Bedrohung.

Der Zugriff auf nicht deklarierte Variablen in PHP löst nur eine Warnung und keinen Fehler aus. Folglich kann dies einen Nährboden für heimtückische Schwachstellen schaffen.

Ein anschauliches Beispiel

Bedenken Sie den folgenden Codeausschnitt:

<code class="php"><?php
// $debug = true;
if ($debug) {
    echo "query: $query\n";
}
?></code>

If $ Wenn die Abfrage nicht explizit deklariert ist, würde der obige Code den Wert einer GET- oder POST-Variablen mit dem Namen „query“ ohne Fehler ausgeben. Obwohl dies möglicherweise keine unmittelbare Bedrohung darstellt, kommt schlecht gestalteter PHP-Code leider häufig vor.

In solchen Szenarien kann REGISTER_GLOBALS unbeabsichtigte Nebenwirkungen und Sicherheitslücken verursachen, die sonst leicht als Fehler erkennbar wären.

Fazit

Obwohl REGISTER_GLOBALS nicht grundsätzlich bösartig ist, hat es sich als eine wesentliche Ursache für Sicherheits- und Stabilitätsprobleme in PHP-Codebasen erwiesen. Dadurch hat es sich seinen berüchtigten Ruf erworben und die Entwickler haben sich einstimmig darauf geeinigt, es als Paria-Setting zu behandeln.

Das obige ist der detaillierte Inhalt vonWarum gilt REGISTER_GLOBALS in PHP als Sicherheitsalbtraum?. 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