“アカウント”表に対して,SQL文を実行したとき,“アカウント”表の全ての行が取得される入力パラメタはどれか。ここで,入力パラメタのエスケープ処理は行わない。また,“;”はSQL文の終端として解釈されるものとする。 アカウント表(ID,ユーザ名,メールアドレス):A001 TARO JOHO t-joho@email.org.jp/A002 JIRO JOHO j-joho@email.org.jp/A003 HANAKO JOHO h-joho@email.org.jp。 〔SQL文〕 SELECT ID,ユーザ名,メールアドレス FROM アカウント WHERE ユーザ名='入力パラメタ';
条件を恒真にする入力でWHERE句が全行に適合する
アカウント表
SQL文:
SELECT ID,ユーザ名,メールアドレス FROM アカウント
WHERE ユーザ名='入力パラメタ';
| ID | ユーザ名 | メールアドレス |
|---|---|---|
| A001 | TARO JOHO | t-joho@email.org.jp |
| A002 | JIRO JOHO | j-joho@email.org.jp |
| A003 | HANAKO JOHO | h-joho@email.org.jp |
選択肢
- ア' OR '--' = '--
- イ' OR ユーザ名 = 'ユーザ名
- ウ'-- OR 1 = 1
- エ¥' OR 1 = 1 ';--
正解と解説
正解:ア ' OR '--' = '--
入力値がそのまま連結されるため、条件式が常に真になる形にすればWHERE句が全行に適合します。アは引用符を閉じた上でOR以下が同じ文字列同士の比較となり、条件が恒真となって全行が返ります。他は引用符の対応が崩れて構文エラーになるか、条件が真になりません。
選択肢ごとの解説
- ア正しい。引用符が正しく閉じ、同一文字列の比較で条件が常に真になる。
- イ誤り。列と文字列リテラルの比較となり、全行が真にはならない。
- ウ誤り。以降がコメント扱いとなり、条件が真になる前に文が終わってしまう。
- エ誤り。引用符の対応が崩れており、構文として成立しない。
同じ分野の他の問題
- Webアプリケーションソフトウェアの脆弱性を悪用する攻撃手法のうち、入力した文字列がPHPのexec関数などに渡されるこ…2023年度 秋期 午前II 問1
- Webサーバのログを分析したところ、Webサーバへの攻撃と思われるHTTPリクエストヘッダが記録されていた。次のHTTP…2022年度 春期 午前II 問1
- Webサーバのログを分析したところ、Webサーバへの攻撃と思われるHTTPリクエストヘッダが記録されていた。次のHTTP…2020年度 10月試験 午前II 問1
- Webアプリケーションの脆弱性を悪用する攻撃手法のうち,Webページ上で入力した文字列がPerlのsystem関数やPH…2018年度 秋期 午前II 問13
- Webサーバのログを分析したところ,Webサーバへの攻撃と思われるHTTPリクエストヘッダが記録されていた。次のHTTP…2018年度 春期 午前II 問2
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。