Webアプリケーションにおけるセキュリティ上の脅威と対策の適切な組合せはどれか。
ア OSコマンドインジェクションを防ぐために、Webアプリケーションが発行するセッションIDを推測困難なものにする。
イ SQLインジェクションを防ぐために、Webアプリケーション内でデータベースへの問合せを作成する際にバインド機構を使用する。
ウ クロスサイトスクリプティングを防ぐために、外部から渡す入力データをWebサーバ内のファイル名として直接指定しない。
エ セッションハイジャックを防ぐために、Webアプリケーションからシェルを起動できないようにする。
イ
ア OSコマンド・インジェクションは、攻撃者が、スクリプトを用いてWebサイトのOSコマンドを呼び出し、任意のファイルの読出しや変更・削除などの不正操作をする。
OSコマンドインジェクションを防ぐためには、Webアプリケーションからシェルを起動できないようにする。
イ 正しい。SQLインジェクションは、Webアプリケーションのデータ操作言語の呼出し方に不備がある場合に、攻撃者が悪意をもって構成した文字列を入力することによって、データベースのデータの不正な取得、改ざん及び削除をする攻撃のことである。
ウ クロスサイトスクリプティング (Cross Site Scripting = XSS) は、Webアプリケーションにスクリプトを埋め込むことが可能な脆弱性がある場合、その脆弱性を悪用して不正なスクリプトを利用者ブラウザ上で実行する攻撃である。
クロスサイトスクリプティングを防ぐためには、Webアプリケーション内で、クライアントに入力データを再表示する場合、情報内のスクリプトを無効にする処理
(エスケープ) を行う。
なお、ディレクトリ・トラバーサルは、ウェブサイトのページを指定するパスに ../ などの細工を行うことで、本来アクセスを禁止しているディレクトリやファイルにアクセスすることである。
ディレクトリ・トラバーサルを防ぐためには、外部から渡す入力データをWebサーバ内のファイル名として直接指定しない。
エ セッションハイジャックは、WebブラウザとWebサーバの間の通信で、認証が成功してセッションが開始されているときに、Cookieなどのセッション情報を盗むことである。
セッションハイジャックを防ぐためには、Webアプリケーションが発行するセッションIDを推測困難なものにする。
問13 | 目次 | 問15 |