SQLインジェクション対策:種類と攻撃手法をわかりやすく解説
SQLインジェクションの主な種類は次のようになります:
- SQLインジェクション: 悪意のあるSQL文を入力することによって、プログラムがエラーメッセージや例外を返すようにし、データベースの構造やデータを取得する。
- 盲目なSQLインジェクション:具体的なエラーメッセージなしに、プログラムの返り値を判定してデータを取得する。
- 時間に基づくブラインドSQLインジェクション:プログラムの返り値の時間を利用して、インジェクションが成功したかどうかを判断し、データを取得する。
- 1つのリクエストで複数のSQL文を実行する堆積型のクエリインジェクション。
- 二次注入:前回の注入結果を活用して次回の注入を行う。
- SQL文中において、UNIONキーワードを使用して、2つのクエリの結果を結合することで、連結クエリインジェクションが発生します。
- ストアドプロシージャインジェクションは、ストアドプロシージャ内のパラメータを変更することで実行されます。
- エラーログインジェクション:エラーを誘発し、エラーログに記載された情報を見ることでデータを取得します。
- SQL インジェクションを利用して、悪意のあるSQL ステートメントを作成してデータベースのエラーメッセージを引き起こし、データを取得する。
- ブール型ブラインドSQLインジェクションを使用して、真偽を判断してデータを取得します。