問14問14解説へWebアプリケーションにおけるセキュリティ上の脅威と対策の適切な組合せはどれか。Webアプリケーションが発行するセッションIDを推測困難なものにする。SQLインジェクションを防ぐために,Webアプリケーション内でデータベースへの問合せを作成する際にバインド機構を使用する。クロスサイトスクリプティングを防ぐために,外部から渡す入力データをWebサーバ内のファイル名として直接指定しない。セッションハイジャックを防ぐために,Webアプリケーションからシェルを起動できないようにする。登場するそれぞれの攻撃手法は次のようなものです。OSコマンドインジェクションユーザーの入力をもとにOSのコマンドを発行して処理を行うWebアプリケーションに対して、不正なコマンドを渡すことで任意のファイルに対する読出し、変更、削除、パスワードの取得などを行う攻撃。OSコマンドの呼出しに使われる関数は、C、Perl、PHPのexecやsystem、入力値としてコマンドを許しているPerlのopen関数などがあるSQLインジェクションWebアプリケーションに対してデータベースへの命令文を構成する不正な入力データを与え、Webアプリケーションが想定していないSQL文を意図的に実行させることで、データベースを破壊したり情報を不正取得したりする攻撃クロスサイトスクリプティング動的にWebページを生成するアプリケーションに対して、セキュリティ上の不備を突いた悪意のあるスクリプトを混入させることで、攻撃者が仕込んだ操作を実行させたり、別のサイトを介してユーザーのクッキーや個人情報を盗んだりする攻撃セッションハイジャック認証が完了しているWebブラウザとWebサーバの間の通信を傍受するなどして、CookieやセッションIDなどのセッション情報を盗み取ることで、第三者が対象セッションを乗っ取る攻撃セッションハイジャックを防ぐための対策です。SQLインジェクションは、利用者が入力した値をそのままSQL文の一部として使ってしまうことで攻撃が成立します。プレースホルダは、利用者入力部分に特殊文字(?など)を割り当てたSQL文のひな形を用意し、特殊文字部分には実行時にエスケープ処理された値を割り当てる仕組みです。SQLインジェクションを狙った不正な文字が含まれていたとしても、SQL文の命令文の一部ではなく、単なる値として認識されるため安全に実行することができます。//?に値を割り当てて実行ディレクトリトラバーサル攻撃を防ぐための対策です。ディレクトリトラバーサル攻撃は、Webサーバの非公開ファイルへのアクセスを試みる攻撃です。OSコマンドインジェクションを防ぐための対策です。sc-siken.com▲Pagetop。