安全なWebアプリケーションの作り方

各攻撃手法に対する根本的な対策を確認します。 ・アのSQLインジェクションに対しては、SQL文の骨組みをあらかじめ定義しておき、後からパラメータを安全にバインドする「静的プレースホルダ(バインド機構)」を使用することが最も有効な対策です。これが正しい組み合わせです。 ・イのクロスサイトスクリプティングに対しては、入力された特殊文字を無害化(サニタイジング / エスケープ処理)することが対策です。外部のスタイルシートの取り込みは逆にリスクを高めます。 ・ウのCSRFに対しては、ワンタイムトークンの利用や、重要な処理でパスワードの再入力を求めることが対策です。GETメソッドはURLにパラメータが付加されるため、CSRFに悪用されやすく不適切です。 ・エのセッションハイジャックに対しては、ログイン成功時にセッションIDを新しく発行(変更)し、推測困難な乱数を用いることが対策です。固定IDの使用は「セッション固定化攻撃」の原因となります。

安全な Web アプリケーションの作り方について、攻撃と対策の適切な組合せはどれか。

出典令和3年度 春期 情報処理安全確保支援士試験 午前Ⅱ 問12

攻撃

対策

ア

SQLインジェクション

SQL 文の組立てに静的プレースホルダを使用する。

イ

クロスサイトスクリプティング

任意の外部サイトのスタイルシートを取り込めるようにする。

ウ

クロスサイトリクエストフォージェリ

リクエストに GET メソッドを使用する。

エ

セッションハイジャック

利用者ごとに固定のセッションIDを使用する。