【問110】情報・サイバーセキュリティ初級 練習問題|XSSの根本的な対策
外部からの攻撃と不正プログラム 問10/20難易度B(標準)
問題文
クロスサイト・スクリプティングの脆弱性をなくすための根本的な対策として、最も適切なものはどれか。
- 1.Webページに出力する際に、HTMLの特殊文字を無害な表記へ置き換える
- 2.データベースへの問合せで、SQL文の組み立てにプレースホルダを使用する
- 3.重要な操作の実行前に、推測されにくい秘密の値を確認する処理を加える
- 4.入力欄に入力できる文字数の上限を小さくして、長い文字列を受け付けないようにする
解説
正解は1。クロスサイト・スクリプティングは、Webアプリケーションが入力値をHTMLに出力する際の処理の不備により、攻撃者のスクリプトが閲覧者のブラウザ上で実行される脆弱性である。IPAの「安全なウェブサイトの作り方」は、根本的な解決策として、Webページに出力するすべての要素にエスケープ処理を施すことを示している。エスケープ処理とは、HTMLで特別な意味を持つ文字を無害な表記に置き換えることである。2は誤り。プレースホルダの使用は、SQLインジェクションの対策である。3は誤り。重要な操作の前に秘密の値を確認するのは、クロスサイト・リクエスト・フォージェリの対策である。4は誤り。入力できる文字数を小さくしても、短いスクリプトは入力できるため、根本的な解決にならない。