PHP 開発者は、「マジック クオート」と呼ばれる問題に遭遇する可能性があります。この問題により、コードが運用環境で正しく動作しなくなる可能性があります。 Magic Quotes は、Web アプリケーションを SQL インジェクション攻撃から保護するために設計されたセキュリティ メカニズムです。しかし、時間の経過とともに、Magic Quotes は安全ではないことが判明し、キャンセルされました。
この記事では、Magic Quotes をオフにして、PHP コードを最新のセキュリティとベスト プラクティスに準拠した状態に保つ方法を説明します。
Magic Quotes とは
#PHP の初期バージョンでは、開発者はフォームからデータを抽出してデータベースに挿入する必要があることに気づきました。その過程で、「SQL インジェクション」として知られる実際のセキュリティ問題があることが判明しました。 SQL インジェクションは、攻撃者が悪意のあるコードを送信して Web アプリケーションを侵害する非常に一般的な攻撃方法です。 SQL インジェクション攻撃から開発者を保護するために、PHP 開発チームは Magic Quotes を導入しました。
Magic Quotes は、開発者を SQL インジェクション攻撃から保護するために、入力データ内の引用符やその他の特殊文字を自動的にエスケープする、自動的に適用される機能です。たとえば、ユーザーがテキスト ボックスに「O'Reilly」と入力すると、Magic Quotes はそれを「O\'Reilly」としてエスケープします。
これを行うと Web アプリケーションを保護できますが、特定の状況では問題が発生する可能性もあります。 Magic Quotes はデータを変更する可能性があり、アプリケーションが破損する可能性があります。たとえば、アプリケーションが引用符を含むデータをデータベースに保存することを想定している場合、Magic Quotes によってそれが妨げられます。したがって、Magic Quotes をオフにする方が良い選択肢になる可能性があります。
Magic Quotes をオフにする
Magic Quotes をオフにする場合は、php.ini ファイルで magic_quotes_gpc オプションを設定するだけです。 magic_quotes_gpc は、Magic Quotes の動作を制御するスイッチです。 「オン」に設定すると、PHP は文字エスケープ処理を自動的に実行します。 「オフ」に設定されている場合、PHP はこれらの文字を自動的にエスケープしません。 php.ini ファイルで magic_quotes_gpc オプションを設定する方法は次のとおりです。
magic_quotes_gpc = Off
ログイン後にコピー
ログイン後にコピー
この変更を行った後、Web サーバーを再起動する必要があります。 PHP コードで phpinfo() 関数を使用すると、Magic Quotes が正常にオフになったかどうかを確認できます。正常に閉じられると、次の出力が表示されます。
magic_quotes_gpc = Off
ログイン後にコピー
ログイン後にコピー
Alternatives
Magic Quotes をオフにすると、PHP コードが最新のセキュリティとベスト プラクティスに準拠した状態に保たれますが、ただし、場合によっては代替手段を探す必要があるかもしれません。たとえば、アプリケーションが SQL インジェクション攻撃からデータを保護する必要がある場合は、データ バインディングまたはパラメータ化されたクエリを使用できます。データ バインディングは、データ値を SQL クエリ ステートメントのプレースホルダーにバインドする方法であり、パラメーター化クエリは、事前定義された SQL クエリ ステートメントとパラメーターを使用してクエリ操作を実行する方法です。
結論
Magic Quotes は Web アプリケーションを SQL インジェクション攻撃から保護する機能でしたが、安全ではないことが判明し、削除されました。 Magic Quotes をオフにする場合は、php.ini ファイルで magic_quotes_gpc オプションを設定する必要があります。 Web アプリケーションを保護するために、データ バインディングやパラメーター化されたクエリなどの代替手段を探すこともできます。どちらの方法を選択する場合でも、PHP コードが最新のセキュリティとベスト プラクティスに準拠していることを確認してください。
以上がPHPでマジッククォートをオフにする方法は?手法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。