SC情報処理安全確保支援士試験 午前Ⅱ

平成27年度秋期 情報処理安全確保支援士 午前Ⅱ 問12

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

クロスサイトスクリプティングによる攻撃を防止する対策はどれか。

選択肢

  1. ア
    WebサーバにSNMPエージェントを常駐稼働させ、 Webサーバの負荷状態を監視する。
  2. イ
    WebサーバのOSのセキュリティパッチについて、 常に最新のものを適用する。
  3. ウ
    Webサイトへのデータ入力について、 許容範囲を超えた大きさのデータの書込みを禁止する。
  4. エ
    Webサイトへの入力データを表示するときに、 HTMLで特別な意味をもつ文字のエスケープ処理を行う。
解き方のヒントを見る

午前II 問12

クロスサイトスクリプティング対策の基本は、ユーザーが入力した文字を画面に出すときに、HTMLで特別な意味を持つ文字をエスケープすることだよ。たとえば「これは命令じゃなくて、ただの文字ですよ」と名札を付けてから表示するイメージ。そうすれば、ブラウザが勝手にスクリプトとして実行してしまうのを防げるよ。

この問題で問われていること

この問題で見ているのは、監視を強化するとか、入力できる文字数を短くするとか、OSにパッチを当てることではないよ。ポイントは、ブラウザ上で実行されてしまう悪意あるスクリプトを、表示時のエスケープで直接防ぐことだよ。

XSS の防止点

利用者入力をそのまま画面へ埋め込むと、script などがブラウザで実行されるおそれがあります。出力時に特殊文字を無害化して文字列として扱わせるのが XSS 防止の基本です。

入力値 -> 出力時にエスケープ\n-> スクリプトとして実行されない

確認ポイント

  • SNMP 監視や OS パッチは一般対策で、XSS の直接対策ではありません。
  • 入力サイズ制限だけではスクリプト混入は防げません。
  • 「表示するときの処理」に着目します。
正解と解説を見る

正解

エ

出典

問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。

選択肢ア

これは不正解だよ。SNMPエージェントでWebサーバの負荷を監視するのは、店の混雑具合をカメラで見張るようなものだよ。サーバが重いかどうかは分かるけれど、ページに埋め込まれた悪意あるスクリプトを無害化する対策ではないんだ。

選択肢イ

これは不正解だよ。OSのセキュリティパッチを最新にするのは、家の鍵や窓を新しくして弱点をふさぐような大事な基本対策だよ。でも、この問題のクロスサイトスクリプティングは、Webページに表示する文字の扱い方が原因なので、OSを更新するだけでは直接の対策にならないんだ。

選択肢ウ

これは不正解だよ。大きすぎる入力を止めるのは、荷物受付で「この箱は大きすぎるから入れられません」と断るような対策で、主にバッファオーバーフローなどを防ぐ考え方なんだ。クロスサイトスクリプティングは、入力の大きさよりも、入力された文字がブラウザ上で勝手に命令として動くことが問題だよ。

選択肢エ(正解)

これは正解だよ。HTMLで特別な意味をもつ文字をエスケープするのは、怪しいメモをそのまま店内放送で読まず、ただの文字として掲示板に貼るようなものだよ。たとえば入力された「<script>」を命令として実行させず、ただの文字として表示すれば、クロスサイトスクリプティングを防げるんだ。

出典:独立行政法人 情報処理推進機構(IPA)平成27年度秋期 情報処理安全確保支援士試験 午前Ⅱ 問12(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針