Heim >Backend-Entwicklung >PHP-Tutorial >Warum stellt REGISTER_GLOBALS ein Sicherheitsrisiko in PHP dar?
REGISTER_GLOBALS: Ein PHP-Sicherheitsrisiko
REGISTER_GLOBALS war einst eine umstrittene Funktion in PHP, die zu allgemeiner Verurteilung führte. Sein berüchtigter Ruf rührt von den damit verbundenen Sicherheitsrisiken her.
Was ist also das Problem mit REGISTER_GLOBALS?
REGISTER_GLOBALS erstellt automatisch globale Variablen für alle GET- und POST-Anfrageparameter , sodass sie überall im Skript zugänglich sind. Dies stellt eine erhebliche Bedrohung dar, da der Zugriff auf nicht deklarierte Variablen lediglich eine Warnung in PHP und kein Fehler ist.
Betrachten Sie den folgenden hypothetischen Code:
<code class="php">// $debug = true; if ($debug) { echo "query: $query\n"; }</code>
Ohne REGISTER_GLOBALS aktiviert, Zugriff auf die nicht deklarierte $query Variable würde zu einer Warnung oder einem Fehler führen und Entwickler dazu veranlassen, die Variable explizit zu definieren. Wenn jedoch REGISTER_GLOBALS aktiviert ist, wäre die nicht deklarierte $query immer noch als globale Variable verfügbar, was Angreifern eine potenzielle Möglichkeit bietet, diesen nicht deklarierten Parameter auszunutzen.
Obwohl REGISTER_GLOBALS nicht grundsätzlich schädlich ist, kann es die in vorherrschenden Sicherheitslücken verschlimmern viele PHP-Skripte aufgrund ihrer oft mangelhaften Qualität. Daher wird im Allgemeinen empfohlen, REGISTER_GLOBALS zu deaktivieren, um die Sicherheit zu erhöhen.
Das obige ist der detaillierte Inhalt vonWarum stellt REGISTER_GLOBALS ein Sicherheitsrisiko in PHP dar?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!