„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum werden POST-Daten in PHP automatisch maskiert, auch wenn Magic Quotes deaktiviert sind?

Warum werden POST-Daten in PHP automatisch maskiert, auch wenn Magic Quotes deaktiviert sind?

Veröffentlicht am 20.11.2024
Durchsuche:532

Why is POST Data Auto-Escaping in PHP Even When Magic Quotes are Disabled?

Enthüllung der mysteriösen Auto-Escaping-Post-Daten in PHP mit deaktivierten Magic Quotes

Bei der Arbeit mit POST-Daten in PHP, insbesondere innerhalb eines In der WordPress-Umgebung kann es trotz der Deaktivierung von magischen Anführungszeichen zu unerwarteten automatischen Escape-Verhalten kommen. Dieses verwirrende Problem tritt auf, wenn POST-Daten automatisch maskiert werden, obwohl magische Anführungszeichen angeblich deaktiviert sind (get_magic_quotes_gpc() gibt 0 zurück).

Einfluss von WordPress

Bei näherer Betrachtung Wenn man sich mit dem Thema befasst, wird deutlich, dass WordPress eine entscheidende Rolle bei der Auslösung dieses automatischen Escape-Mechanismus spielt. Wenn WordPress im Rahmen des Initialisierungsprozesses Ihrer Anwendung gebootet wird, beeinträchtigt sein Code das natürliche Verhalten der magischen Anführungszeichen von PHP.

WordPress enthält Funktionen, die Anforderungsdaten, einschließlich POST-Daten, abfangen und bestimmte Vorgänge ausführen, darunter eine entkommt einfache Anführungszeichen ('). Dieses Verhalten gilt auch dann, wenn magische Anführungszeichen in php.ini deaktiviert sind.

Die Quelle des Fehlers

Eine genauere Untersuchung der WordPress-Codebasis zeigt einen Fehler, der unter gemeldet wird das WordPress Core Trac-System (Ticket 18322). Dieses Problem hängt mit der falschen Verarbeitung von Anforderungsdaten zusammen, die unerwünschtes Escapen auslöst.

Die Lösung

Glücklicherweise gibt es eine Lösung, um dieses Dilemma des automatischen Escapens zu lösen . Der WordPress-Codex empfiehlt die Verwendung der Funktion „stripslashes_deep()“, um das Escapezeichen für POST-Daten aufzuheben, bevor irgendwelche Vorgänge daran ausgeführt werden. Durch den Einsatz dieser Funktion können Sie die automatische Escape-Funktion von WordPress effektiv außer Kraft setzen und die Daten im Originalformat abrufen.

Um diese Lösung zu implementieren, fügen Sie den folgenden Code zu Ihrem PHP-Skript hinzu:

$_GET       = array_map('stripslashes_deep', $_GET);
$_POST      = array_map('stripslashes_deep', $_POST);
$_COOKIE    = array_map('stripslashes_deep', $_COOKIE);
$_SERVER    = array_map('stripslashes_deep', $_SERVER);
$_REQUEST   = array_map('stripslashes_deep', $_REQUEST);

Dieser Code entfernt Schrägstriche von allen Superglobals und stellt so sicher, dass POST-Daten beim Zugriff in PHP nicht automatisch maskiert werden.

Neuestes Tutorial Mehr>

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