設問1 【サイトBのXSS脆弱性】について、(1),(2)に答えよ。
(1)本文中の下線①における診断リクエストの構成要素を、解答群の中から選び、記号で答えよ。
解答:ア
図1のライブラリMのコードに当てはめると、次の文字列を出力します。
out.printlnは、Javaの代表的な関数です。
引数の値を文字列として出力します
バックスラッシュ(\)は、エスケープシーケンスで、ダブルクォーテーション(”)を文字として表示するために入れているため、out.printlnで文字列出力する時には削除します。
<meta property=”og:url” content=”https://serverName/scriptName?queryString“>
serverName,scriptName,queryStringは、注記に記載がある通りです。
- serverName:リクエストURLのホスト名(www.b-sha.co.jp)
- scriptName:URLのパス名
- queryString:URLのクエリ文字列以降の値がURLデコードされて格納
選択肢に当てはめると、以下の通りです。
scriptName | queryString | ||
ア | confirm | “><img src=1 oneeror=alert(1)><“ | <meta property=”og:url” content=”https://www.b-sha.co.jp/confirm?“><img src=1 oneeror=alert(1)><“ “> |
イ | confirm | “><img src=1 oneeror=alert(1)><“ | <meta property=”og:url” content=”https://www.b-sha.co.jp/confirm?><img src=1 oneeror=alert(1)><“ “> →contentのURL末尾にダブルクォーテーションがないため、文法エラー |
ウ | cofirm | なし | – |
エ | cofirm | なし | – |
(2)本文中の下線②について、考えられる再発防止策を、35字以内で答えよ。
解答:ダウンロードするライブラリに既知の脆弱性がないかを確認する。/特定のWebサイトからの入手をルール化し、明文化する
本文中の「既知のXSS脆弱性の対策をしていないバージョンであった。その結果、ライブラリMを使っているサイトB、サイトX、サイトY及びサイトZにおいて、同じXSS脆弱性が検出された」より、
サイトB、X、Y、ZにおけるXSS脆弱性の原因は、ライブラリMのバージョンがXSS脆弱性対策をしていないことです。
また、「B社では、開発部のメンバそれぞれが、マルウェアが含まれていない、既知の脆弱性が修正された、安全性が確認できているライブラリを公開しているWebサイトから、ファイルサーバにダウンロードし、使用している」ため、ダウンロードする時にライブラリに脆弱性がないかを確認したり、そもそもこのWebサイトからライブラリをダウンロードすることをルール化すれば、再発防止になりますね、