特定の状況では、PHP Web ページでフォーム データを送信すると、すべての二重引用符の前にバックスラッシュを付けます。この問題は、マジック クォーテーションと呼ばれるサーバー構成機能が原因で発生します。
マジック クオートが有効になっている場合、データベースまたはフォーム送信の送受信時に、二重引用符を含む特定の文字が PHP によって自動的にエスケープされます。これにより、悪意のある引用符をエスケープすることで SQL インジェクション攻撃を防ぐことができますが、通常のフォーム処理に干渉する可能性もあります。
問題の解決
この問題を解決するには、次のコマンドを使用できます。フォーム データをデータベースに保存する前、またはページに表示する前に、stripslashes() 関数を使用して、自動的に追加されたバックスラッシュを削除します。以下に例を示します。
if (get_magic_quotes_gpc()) {
$input = stripslashes($input);
}
この条件文は、マジック クオートが有効かどうかを確認し、有効であれば、stripslashes() を使用して $input 変数からバックスラッシュを削除します。これにより、追加の変更を加えずにフォーム データを通常どおり処理できるようになります。
マジック クオートの説明
マジック クォートは非推奨の機能であり、最新の PHP では安全ではないと考えるべきです。発達。これらは PHP 4 で導入され、セキュリティとコードの互換性に関するさまざまな問題が発生したため、PHP 7.0.0 で削除されました。
マジック クオートを無効にすると、より透過的で安全なコーディングが可能になるため、通常は無効にすることが推奨されます。 PHP 設定ファイルを変更し、magic_quotes_gpc を Off に設定することでマジック クオートを無効にできます。
マジック クオートの機能を理解し、stripslashes() を使用してこの「すべての引用符の前にスラッシュを付ける」問題を解決することで、効果的に対処できます。 PHP でデータを形成し、魔法の引用符が有効になっている場合でも意図した機能を保証します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3