安全なWebアプリケーションの作り方について、攻撃と対策の適切な組合せはどれか。
┌─────────┬───────────────┐
│ 攻撃 │ 対策 │
┌─┼─────────┼───────────────┤
│ア│SQL │SQL文の組立てに静的プレース│
│ │インジェクション │ホルダを使用する。 │
├─┼─────────┼───────────────┤
│イ│クロスサイト │任意の外部サイトのスタイル │
│ │スクリプティング │シートを取り込めるようにする。│
├─┼─────────┼───────────────┤
│ウ│クロスサイトリクエ│リクエストにGETメソッドを │
│ │ストフォージェリ │使用する。 │
├─┼─────────┼───────────────┤
│エ│セッション │利用者ごとに固定のセッション │
│ │ハイジャック │IDを使用する。 │
└─┴─────────┴───────────────┘
ア
ア 正しい。SQLインジェクションは、Webアプリケーションのデータ操作言語の呼出し方に不備がある場合に、攻撃者が悪意をもって構成した文字列を入力することによって、データベースのデータの不正な取得、改ざん及び削除をする攻撃のことである。
プレースホルダーはID=? などのような、パラメータ部分のことである。
イ クロスサイトスクリプティング (Cross Site Scripting = XSS) は、Webアプリケーションにスクリプトを埋め込むことが可能な脆弱性がある場合、その脆弱性を悪用して不正なスクリプトを利用者ブラウザ上で実行する攻撃である。
エスケープ文字 (< → < など) を使うとある程度有効である。
ウ クロスサイトリクエストフォージェリは、悪意のあるスクリプトを埋め込んだWebページを訪問者に閲覧させて、別のWebサイトで、その訪問者が意図しない操作を行わせる攻撃のことである。
対策としては、GETメソッド (http://xxx.xxx?ID=Value のようなパラーメータ) ではなく、POSTメソッド (HTMLのメッセージの中など) でパラメータ部分を隠す。
エ セッションハイジャックは、WebブラウザとWebサーバの間の通信で、認証が成功してセッションが開始されているときに、Cookieなどのセッション情報を盗むことである。
セッションハイジャックを防ぐためには、Webアプリケーションが発行するセッションIDを推測困難なものにする。
問12 | 目次 | 問14 |