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