首頁 >後端開發 >php教程 >為什麼即使在禁用魔術引號後我的 WordPress POST 資料也會逃逸?

為什麼即使在禁用魔術引號後我的 WordPress POST 資料也會逃逸?

DDD
DDD原創
2024-11-03 05:43:30320瀏覽

Why Is My WordPress POST Data Escaping Even After Disabling Magic Quotes?

WordPress 中的魔術引號難題

儘管禁用了PHP 的魔術引號(透過get_magic_quotes_gpc() 返回資料驗證資料)被轉義。當 WordPress 整合到多站點安裝中時,就會出現此問題。

WordPress 在自動轉義中的角色

自動轉義的原因在於 WordPress 的程式碼庫。即使禁用了魔術引號,WordPress 中的錯誤(票號 #18322)也會嘗試清理輸入。解決方案是按照法典中的建議,手動從輸入資料中明確去除斜線。

深度去除斜線

要解決此問題,請從超全域深度移除斜線使用stripslashes_deep() 函數的陣列($_GET、$_POST、$ _COOKIE、$_SERVER 和$_REQUEST):

<code class="php">$_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);</code>

替代方法

或者,考慮在特定數組上本地使用array_map() 而不是覆寫超全域變數:

<code class="php">$post = array_map('stripslashes_deep', $_POST);</code>

注意事項

如上所示修改超全域變數可能會對您的應用程式產生影響。如果特定上下文允許,請考慮選擇性剝離以保持資料完整性。請參閱提供的參考資料以獲取更多見解。

以上是為什麼即使在禁用魔術引號後我的 WordPress POST 資料也會逃逸?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn