chanting an air of joyous bliss

普段の生活で見逃しがちな面白いことを書いていく
そんなブログです

平成25年度秋季情報セキュリティスペシャリスト 午後1 問3

2016-11-26 11:44:44 | 資格試験勉強
●全体
Webシステムのクロスサイトスクリプティングについて問われている
●ページ2
・Eシステムについて
Javaサーブレットで開発されている
・表1 XSS対策の実施項目
IPAが公表している”安全なウェブサイトの作り方”を参考にして実施項目を作成しているが、具体的なコーディング例が記載されているわけではない。たとえば、チェック項目に「HTMLテキストの入力を許可しない仕様とする」とあるが、具体的にどのようにコーディングするのだろうか?後のページで出てくる仕様やプログラムが表1に準拠しているか確認する必要がある
[社内検査]
IPAで公表されている”ウェブ健康診断仕様”を元にXSS対策に漏れがないかどうかを検査する工程である。つまり、表1の内容をこの検査で担保するようにする。
●ページ3
・表2Web健康診断に基づいて作成したXSS対策の判定基準
検査の対象は”対象画面から入力された文字列”に限定している
検査の方法として以下のパターンを整理している
エスケープ処理を行っていることを確認する
URLを出力するときは"http://",又は"https://"で始まるURLだけを許可する
そもそもの疑問として、検査の対象を画面から入力された文字列に限定していいのだろうか?データベースなど、画面を経由しない文字列は検査の対象にしなくていいのだろうか?
・図1 賃借物件の選択結果を表示するプログラム
Javaサーブレットで作成されている
リスエストから受け取ったパラメタはすべてエスケープされている
つまり、表1の”エスケープが必要な処理に漏れがないか”という観点については問題ない
URLを出力する部分にjavascript:で始まる文字列を出力してしまっている部分がある
具体的にはプログラムの18行目に問題がある
つまり、表2の”URLを出力するときは"http://",又は"https://"で始まるURLだけを許可する”という観点を満たしていない
●ページ5
・図3 賃貸物件の検索を表示するプログラムについて
JavaServletのブログラムに問題がある
・何が問題か?
DBから取得した値を画面に出力する際、エスケープ処理を行っていない
・なぜ問題なのか?
DBに”悪意のあるスクリプト”が埋め込まれた場合、悪意のあるスクリプトがユーザーのブラウザで実行されてしまう可能性があるから
・どのように修正するべきなのか?
画面に出力する動的パラメタはすべてエスケープ処理を行う必要がある。
●ページ6
・図4 賃貸物件の検索結果を表示するプログラムについて
JavaServletのブログラムに問題がある
・何が問題か?
JavaScriptを出力している部分に動的パラメタを埋め込んでいる
・なぜ問題なのか?
動的パラメタに特定の文字列が含まれている場合、JavaScriptが意図しない挙動をすることがあるため
例えば、以下のプログラムのようにJavaScriptを生成したとする
out.println ("var a = '" + rqloc +"'")
ここで、rqlocに123;alert ('test')という文字列が設定された場合、上記のプログラムは
var a = '123;alert ('test')'"
というJavaScriptに変換されれ、ブラウザでJavaScriptが実行されると、画面に'test'という文字がポップアップウィンドウで表示され、かつ、JavaScriptエラーになる。もし、"alert ('test')"の部分に悪意のあるスクリプトが埋め込まれている場合、深刻なセキュリティインシデントになる
・どのように修正するべきなのか?
JavaScriptを出力している部分にはプログラムから動的パラメータを設定しない。動的パラメタを設定したい場合は、いったん、hidden項目に動的パラメタを設定し、JavaScriptからはhiddenのValue値を設定するようにする
コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 連結会計の基本について | トップ | 情報セキュリティスペシャリ... »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

資格試験勉強」カテゴリの最新記事