令和3年度 春期 情報処理安全確保支援士試験 午前Ⅱ 問12
テクノロジセキュリティ技術システム開発技術Webアプリケーション・ソフトウェアの脆弱性
安全なWebアプリケーションの作り方について,攻撃と対策の適切な組合せはどれか。
解答・解説
正解: ア. 攻撃: SQL インジェクション
対策: SQL 文の組立てに静的プレースホルダを使用する。
安全なWebアプリケーションを構築するための攻撃と対策に関する問題です。正解は ア です。
SQL インジェクションは、入力値としてSQL文の断片を与えることで、データベースを不正に操作する攻撃です。対策として、SQL文の骨組み(雛形)をあらかじめデータベース側で準備しておき、後からパラメータだけを割り当てる(バインドする)静的プレースホルダを使用することが非常に有効です。これにより、入力値がSQLの命令として解釈されることを防ぎます。
各選択肢の解説
- ア: 正解。SQLインジェクションの対策として、SQL文の組立てに静的プレースホルダを使用することは適切です。
- イ: 誤り。クロスサイトスクリプティング(XSS)の対策として、任意の外部サイトのスタイルシートを取り込めるようにするのは不適切です。外部サイトからのリソース取り込みは、悪意のあるスクリプトが実行されるリスクを高めます。適切な対策は、入力値や出力値の適切なエスケープ処理(サニタイジング)を行うことです。
- ウ: 誤り。クロスサイトリクエストフォージェリ(CSRF)の対策として、リクエストにGETメソッドを使用するのは不適切です。GETメソッドはURLにパラメータが含まれるため、罠サイトなどから意図しないリクエストを送信させられやすくなります。重要な処理にはPOSTメソッドを使用し、推測困難なトークン(CSRFトークン)を利用してリクエストの正当性を確認するなどの対策が必要です。
- エ: 誤り。セッションハイジャックの対策として、利用者ごとに固定のセッションIDを使用するのは不適切です。セッションIDが固定である場合、攻撃者に推測されたり、セッション固定化攻撃の標的になりやすくなります。ログイン認証成功時などに、推測困難で新しいセッションIDを再発行することが適切な対策です。