ホームページ  >  記事  >  バックエンド開発  >  マジック クオートを無効にした後でも WordPress の POST データがエスケープされるのはなぜですか?

マジック クオートを無効にした後でも WordPress の POST データがエスケープされるのはなぜですか?

DDD
DDDオリジナル
2024-11-03 05:43:30264ブラウズ

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

WordPress の魔法の引用符の難題

PHP の魔法の引用符を無効にしても (get_magic_quotes_gpc() が 0 を返すことで検証されています)、POST データは依然としてエスケープされます。 。この問題は、WordPress がマルチサイト インストールに統合されている場合に発生します。

自動エスケープにおける WordPress の役割

自動エスケープの原因は、WordPress のコードベース内にあります。 WordPress のバグ (チケット #18322) は、マジック クオートが無効になっている場合でも入力をサニタイズしようとします。解決策は、コーデックスで提案されているように、入力データからスラッシュを手動で明示的に削除することです。

スラッシュを深く削除する

この問題を解決するには、スーパーグローバルからスラッシュを深く削除します。配列 ($_GET、$_POST、$_COOKIE、$_SERVER、および $_REQUEST) を使用して、stripslashes_deep() 関数を使用します。

<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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。