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:
// $debug = true;
if ($debug) {
echo "query: $query\n";
}
Ohne die Aktivierung von REGISTER_GLOBALS würde der Zugriff auf die nicht deklarierte $query-Variable zu einer Warnung oder einem Fehler führen, der Entwickler dazu auffordert, die Variable explizit zu definieren. Wenn jedoch REGISTER_GLOBALS aktiviert ist, wäre die nicht deklarierte $query weiterhin 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 allgemein empfohlen, REGISTER_GLOBALS für erhöhte Sicherheit zu deaktivieren.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3