平成26年度 技術士第一次試験問題【専門科目】
【16】情報工学部門
V−31
Webアプリケーションに対する攻撃の1つに、リクエスト強要 (Cross-site Request
Forgery) がある。 これは、別のサイトに用意したコンテンツ上の罠のリンクを踏ませること等を
きっかけとして、インターネットショッピングの最終決済や退会等Webアプリケーションの重要な
処理を呼び出すようユーザを誘導する攻撃である。
この攻撃への対策として、最も適切なものはどれか。

 @ 他者が推定困難なランダム値を hiddenフィールドとして埋め込んでおき、フォーム
   データを処理する際に、フォームデータ内にその値が含まれていることを確認する。
 A プログラム中のデータをHTMLドキュメントに出力する際に、タグや属性値を表現する
   特殊文字について、HTMLエンティティを表現する記法に置換する。
 B 別のプログラムを呼び出す際に与えるパラメータについて、文字種を英数字のみ等の
   安全なものに限定し、検査してから渡す。
 C 文字列連結演算を用いてSQL文の途中へ値を埋め込む際に、特殊記号の効力を
   打ち消すよう、エスケープ処理を実施する。
 D ユーザがログインに成功した時点でまったく新しいセッションIDを発行し、それまでの
   セッションIDを無効にする。



【正解】 @
リクエスト強要は、CSRF (Cross site request forgeries = シーサーフ)や、
セッションライディング (Session Riding) とも呼ばれる。
ユーザーはこうした被害に遭わないように、必要な手続きが完了すれば、
速やかにログアウトするのが望ましい。
Webアプリケーションの管理者は、他者が推定困難なランダム値を hiddenフィールドとして
埋め込んでおき、フォームデータを処理する際に、フォームデータ内にその値が含まれている
ことを確認する。

@正しい。
A
HTMLエンティティは、ブラウザがHTMLを表示する際の "<" や "!" などの
 特殊記号を表示するためのもので例えば "
<" は &lt; で表す。
 文字実体参照とも言う。 リクエスト強要に対する対策ではない。
B
コマンド注入攻撃に対する対策である。
 被害者が想定していないパラメータを渡すことで、悪意のあるコマンドを実行させる
 攻撃のこと。
CSQLインジェクションへの対策である。
 
SQLインジェクションは、SQLに不正に論理式などを組込んで、プログラムが想定していない
 SQLを実行させることで、データベースを改ざんしたり、不正に情報を入手する攻撃のこと。
DセッションIDの乗っ取り、特に「
セッションIDお膳立て」への対策である。
 
セッションIDお膳立ては、攻撃者が有効なセッションIDを用意し、被害者に使わせて
 セッションを乗っ取ることである。
 

EXCELのマクロのご相談なら ファーストマクロ 



V−30 目次 V−32
ファーストマクロ TOPページ