Warum werden meine $_POST-Variablen in der Produktion maskiert, aber nicht lokal?

Mary-Kate Olsen
Freigeben: 2024-10-27 09:08:03
Original
520 Leute haben es durchsucht

Why Are My $_POST Variables Escaped on Production but Not Locally?

Warum POST-Variablen auf dem Produktionsserver maskiert werden

Beim Empfang von Daten aus AJAX-POST-Anfragen, wenn Ihre $_POST-Variablen auf Ihrer Produktion maskiert werden Server, aber nicht auf Ihrem lokalen Server, liegt eine wahrscheinliche Ursache darin, dass magische Anführungszeichen auf dem Produktionsserver aktiviert sind.

Magische Anführungszeichen maskieren automatisch einfache Anführungszeichen, doppelte Anführungszeichen, umgekehrte Schrägstriche und Nullzeichen, wenn sie Teil der empfangenen Daten sind aus externen Quellen wie POST-Anfragen. Bei dieser Funktion handelt es sich um eine Sicherheitsmaßnahme zur Verhinderung der Einschleusung von bösartigem Code. Sie kann jedoch auch Probleme verursachen, wenn Sie die Rohdaten abrufen müssen.

Um das Problem zu beheben und ein konsistentes Verhalten auf beiden Servern sicherzustellen, haben Sie mehrere Möglichkeiten :

Magische Anführungszeichen deaktivieren

Der empfohlene Ansatz besteht darin, magische Anführungszeichen in php.ini zu deaktivieren. Dadurch wird das Escapen von POST-Variablen global deaktiviert. Es ist jedoch wichtig zu beachten, dass magische Anführungszeichen in PHP 6 entfernt werden, daher ist es eine gute Idee, sich nicht auf sie zu verlassen.

Schrägstriche entfernen

Wenn Sie das nicht können Wenn Sie magische Anführungszeichen deaktivieren, können Sie die Schrägstriche mithilfe der Funktion „stripslashes()“ manuell aus den $_POST-Variablen entfernen:

if (get_magic_quotes_gpc()) {
    $my_post_var = stripslashes($_POST["my_post_var"]);
}
Nach dem Login kopieren

Durch die Implementierung einer dieser Lösungen können Sie sicherstellen, dass die $_POST-Variablen nicht maskiert werden auf Ihrem Produktionsserver und dass sich sowohl Ihr lokaler Server als auch Ihr Produktionsserver konsistent verhalten.

Das obige ist der detaillierte Inhalt vonWarum werden meine $_POST-Variablen in der Produktion maskiert, aber nicht lokal?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!