ホームページ >バックエンド開発 >PHPチュートリアル >mysql_real_escape_string() は本当に SQL インジェクション攻撃を防ぐことができるのでしょうか?
SQL インジェクションによる mysql_real_escape_string() の回避
広く信じられているにもかかわらず、SQL インジェクションで mysql_real_escape_string() セーフガードをバイパスすることが可能です。この機能は通常、このような攻撃から保護するために利用されているため、これは特に懸念されます。
エクスプロイト
この脆弱性を示す攻撃については、元の投稿で概要が説明されています。重要なのは、特定の文字セット (gbk など) と組み合わせて特定の文字シーケンス (「xbfx27」) を利用することです。これらの条件下で mysql_real_escape_string() によって処理されると、ペイロードはエスケープされていない ' 文字となり、インジェクション目的で悪用される可能性があります。
影響
この脆弱性mysql_real_escape_string() の普及を考えると、広範囲にわたる影響を及ぼします。 SQL インジェクションに対する防御メカニズム。この問題は、mysql_ または PDO_MySQL 拡張機能を使用する PHP アプリケーション、特に脆弱な文字セットが使用されている場合、または PDO のエミュレートされたプリペアド ステートメントに依存している場合に影響します。
安全な方法
これを軽減するには脆弱性があるため、最善を尽くすことが不可欠です実践方法:
これらのガイドラインに従うことで、データベース アプリケーションのセキュリティを強化し、mysql_real_escape_string() 関数をバイパスしようとする SQL インジェクション攻撃から保護できます。
以上がmysql_real_escape_string() は本当に SQL インジェクション攻撃を防ぐことができるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。