ホームページ >バックエンド開発 >PHPチュートリアル >addslashes() は本当に SQL インジェクション攻撃を防ぐことができるのでしょうか?
addslashes() による SQL インジェクションを理解する
addslashes() は、SQL インジェクションを防ぐために文字列内の特殊文字をエスケープするために一般的に使用される PHP 関数です。攻撃します。ただし、その意図にもかかわらず、まれに実際にはそのような攻撃を促進する可能性があります。
例を詳しく見てみましょう:
シナリオ: ユーザーが入力 "' OR 1=1 -- - を送信します。 " をテキスト フィールドに変換します。
addslashes() は入力を "' OR 1=1 -- -" に変換しますが、データベースのエンコーディングがたまたま Shift-JIS などのマルチバイト文字をサポートしていると、アポストロフィがマルチバイト文字の一部として解釈され、意図したエスケープが効果的に損なわれてしまいます。
その結果、変更された SQL クエリは次のようになります。 %OR 1=1 -- -"
アポストロフィはエスケープ シーケンスとして扱われなくなったため、この変更されたクエリは SQL インジェクション攻撃の実行に成功します。むしろマルチバイト文字の一部です。
以上がaddslashes() は本当に SQL インジェクション攻撃を防ぐことができるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。