“アカウント”表に対して、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 ユーザー名 = ’ 入力パラメータ ’;
ア |
’ OR ’--’ = ’-- |
イ |
’ OR ユーザー名 = ’ユーザー名 |
ウ |
’-- OR 1 = 1 |
エ |
\’ OR 1 = 1 ’;-- |
答え ア
【解説】
“アカウント”表からすべての行を取得するには、ユーザー名で共通している“JOHO”で取り出せばいいので、入力パラメータに入るのは’ OR ’--’ = ’--(ア)になります。
SELECT ID, ユーザー名, メールアドレス FROM アカウント
WHERE ユーザー名 = ’ 入力パラメータ ’;
【キーワード】
・SQL
【キーワードの解説】
- SQL
リレーショナルデータベースマネジメントシステム(RDBMS)において、データの操作や定義を行うためのデータベース言語(問い合わせ言語)です。
SQLを用いることで、表の定義やデータ操作、関係演算など、リレーショナルデータベースに関するほとんどの操作を機械可読なテキストとして記述できます。
なお、SQLは何かの略語ではありません。
もっと、「SQL」について調べてみよう。
戻る
一覧へ
次へ
|