2. 特別な値を入力データとする複数のHTTPリクエストに対するHTTPレスポンスの違いを元に確認
実行時のエラー処理がなされているため、1.のような検査方法では脆弱性の有無が判断できないケースがある。この場合、入力データがそのままSQL文として組み立てられると、違う入力データであるにもかかわらず同じ結果が常に返ってくるなど、特定の処理が行われる検査データを含むHTTPリクエストを複数送信し、それらのHTTPレスポンスの違いからSQLインジェクションの有無を判断する。
これは、SQL文が文字列で表現されており、異なるSQL文であっても同じ結果を得ることができることを利用している。この方法で検査する場合に使用する検査データには、たとえば以下のようなものを元の入力データ(正常に処理が行える入力データ)に追加する。

これらの値をパラメータ値として使用した場合、先の例のSQL文では以下のようなSQL文が作成される。

この例は、入力データが検索条件に使用される場合の検査だが、同じような考え方により、入力データを更新、追加する値として使用している場合についても適切なSQL文を作成する複数の入力データを用いることで、脆弱性の有無を検出することが可能だ。