ホームページ > バックエンド開発 > PHPチュートリアル > $_POST 変数が本番環境ではエスケープされるのに、ローカルではエスケープされないのはなぜですか?

$_POST 変数が本番環境ではエスケープされるのに、ローカルではエスケープされないのはなぜですか?

Mary-Kate Olsen
リリース: 2024-10-27 09:08:03
オリジナル
612 人が閲覧しました

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

運用サーバーで POST 変数がエスケープされる理由

AJAX POST リクエストからデータを受信するときに、運用環境で $_POST 変数がエスケープされている場合

マジック クオートは、受信したデータの一部である場合、一重引用符、二重引用符、バックスラッシュ、およびヌル文字を自動的にエスケープします。 POST リクエストなどの外部ソースから。この機能は、悪意のあるコードの挿入を防ぐためのセキュリティ対策ですが、生データを取得する必要があるときに問題を引き起こす可能性もあります。

問題を解決し、両方のサーバー間で一貫した動作を確保するには、いくつかのオプションがあります。 :

マジック クオートを無効にする

推奨される方法は、php.ini でマジック クオートを無効にすることです。これにより、POST 変数のエスケープがグローバルに無効になります。ただし、マジック クォーテーションは PHP 6 では削除されるため、それに依存しないように注意することが重要です。

スラッシュを削除

できない場合は、マジック クオートを無効にするには、stripslashes() 関数を使用して $_POST 変数からスラッシュを手動で削除できます。

if (get_magic_quotes_gpc()) {
    $my_post_var = stripslashes($_POST["my_post_var"]);
}
ログイン後にコピー

これらの解決策のいずれかを実装することで、$_POST 変数がエスケープされないようにすることができます。運用サーバー上で動作し、ローカル サーバーと運用サーバーの両方が一貫して動作することを確認します。

以上が$_POST 変数が本番環境ではエスケープされるのに、ローカルではエスケープされないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート