平成 30 年度 秋期 システムアーキテクト試験 午前Ⅱ 問題 問25
テクノロジセキュリティ技術Webアプリケーション・ソフトウェアの脆弱性
Webアプリケーションにおけるセキュリティ上の脅威とその対策に関する記述のうち,適切なものはどれか。
解答・解説
正解: イ. SQLインジェクションを防ぐために,Webアプリケーション内でデータベースへの問合せを作成する際にプレースホルダを使用する。
正解は イ です。
SQLインジェクションは、Webアプリケーションへの入力データに不正なSQL文の断片を紛れ込ませることで、データベースを不正に操作する攻撃です。データベースへの問合せ(SQL文)を作成する際にプレースホルダ(バインド機構)を使用することで、入力値がSQLの構文(命令)として解釈されるのを防ぐことができるため、対策として適切です。
各選択肢の解説
ア:Webアプリケーションが発行するセッションIDに推測困難な乱数を使用するのは、セッションハイジャックを防ぐための対策です。
イ:SQLインジェクションの対策としてプレースホルダを使用するため、適切な記述です。
ウ:Webサーバ内のファイルを外部から直接参照できないようにするのは、ディレクトリトラバーサルなどの対策です。クロスサイトスクリプティング(XSS)を防ぐためには、特殊文字のエスケープ処理(サニタイジング)などを行います。
エ:Webアプリケーションからシェルを起動できないようにするのは、OSコマンドインジェクションを防ぐための対策です。