基本情報技術者Webと認証の安全性オリジナル・公式資料照合難易度★★☆☆☆
利用者名から会員を検索するSQLを、文字列連結で作っている。利用者名に引用符やSQL断片が含まれると、検索条件の構造が変わってしまう。値として受け取る利用者名に対する基本的な修正はどれか。
A
SQL文字列の連結は残し、ブラウザ上だけで引用符の入力を禁止する
ブラウザの入力制限を通らずに要求を送ることができます。サーバー側でSQLのコードと値を分離する必要があります。
B
SQLの構造を固定し、プレースホルダーへ値をパラメーターとして渡す★ 正解
SQLを固定して値を別に渡すことで、利用者名をSQL構文ではなくデータとして扱う方法です。
C
DBアカウントを読取り専用にすれば、利用者名をSQLへ連結しても検索条件を変えられなくなる
最小権限は被害を減らす対策ですが、読取りのSQLにも検索条件の改変は起こり得ます。クエリのパラメーター化と併用します。
D
接続先をHTTPSにすれば、サーバー側のSQL連結は変更しなくてよい
HTTPSは通信経路を保護します。サーバー内部のSQL組立てによるインジェクションは別途防ぎます。
解説
パラメーター化クエリはSQLのコードと値を分離します。ここでは利用者名という値をバインドします。表名・列名などの識別子まで同じ方法で自由に置換できるとは限らず、その場合は許可リスト等を使います。
根拠資料・確認情報
対応範囲:2026年度 基本情報技術者試験 科目A・B
資料確認日:2026-10-28
同じレッスンの問題
問題 2
コメント欄では利用者の入力を装飾せず、文字としてそのまま表示したい。ブラウザ側で入力をinnerHTMLへ入れると、HTMLタグが解釈されてスクリプトが動くおそれがある。この表示位置に適切な対策はどれか。
問題 3
Cookieによるログイン状態を使うWebアプリで、利用者が別サイトへ誘導され、そのサイトから送られた送金POSTが本人のCookie付きで実行された。POSTであることだけでは防げなかった。この不正な要求への基本対策として適切なのはどれか。
問題 4
パスワード保存方式を見直し、同じパスワードの利用者がいても、ハッシュの事前計算結果を利用者間でそのまま使い回しにくくしたい。適切なパスワード用ハッシュと計算コストを使うことに加え、ソルトをどう扱うのが適切か。
問題 5
攻撃者が偽ログイン画面へ入力されたパスワードとワンタイムコードを即時に正規サイトへ中継している。この中継型フィッシングへの耐性を高めるため、正規のサービスのオリジンに認証を結び付ける方式はどれか。登録・復旧経路も適切に保護されているものとする。