平成28年度 春期 午後1 問1 Webシステムの開発

Web

設問1
(1)
a:wana.example.jp

図6を見ると、4行目の action に https://wana.example.jp/login が設定されている
action にはformに入力されたパラメータの送信先を設定する
FQDNで答えるので、wana.example.jp が答えとなる

(2)
kensho.m-sha.co.jp
図6のスクリプトのせいで画面2-2が画面2-2’に書き換えられてしまうが
画面表示変わるだけで遷移先は確かに画面2-2のURLとなる
なので、kensho.m-sha.co.jp となる。

(3)
b:

ア は いわゆる Ajax のことで、サーバと非同期通信を行う仕組み。
イ は HSTS のこと、二度目以降の接続はHTTPSを強制する仕組み。
ウ は JSON のこと、広く使われるデータ形式の一種。
エ が正解、同一生成元ポリシ と言ったりもする
スキーム、ポート番号、ホスト名 これらが一つでも異なると別オリジンとみなされ
サイトをまたがった(クロスサイト)通信はできなくなる。

(4)
c: https://kensho.m-sha.co.jp/Gamen2_2
d: keyword

(5)
懸賞メンバとしてログインしている状態(18字)

図1の注記2にある通り、画面3-7に遷移するには ログイン済み でないと画面1-1へリダイレクトされることが分かる。
そのため、被害者はログイン済みである必要がある。

設問2
(1)
e:ランダムな値
f:hidden
CSRFの対策には主に以下の3つがある
1 秘密情報を挿入し、その検証を行う
2 重要な処理の直前に追加の認証を行う
3 Refererを参照する
本問では 1 が採用されている。
hiddenフィールドにランダムな値(CSRFトークン)を設定し、画面遷移時にその検証を行う
IPAの安全なWebサイトの作り方にも記載されている
この資料からまんま出ることもあるので、読んでおくことをお勧めします。

(2)

残っている各遷移について考える
(い):対策不要
検索の為のキーワードだけ渡すので対策は必要性は薄い
(く):要対策
応募必要事項を受け渡している
記載する内容は分からないが、次の(け)でも対策を行っている
そのため入力したデータを受け渡している(く)でも対策は行うべき
(さ):対策不要
特にパラメータを受けわたさず、画面を遷移するだけなので対策は不要
(し),(す):要対策
個人情報となり得る重要な情報を受け渡しているので、対策を行うべき
(せ):対策不要
こちらも特にパラメータを受けわたさず、画面を遷移するだけなので対策は不要

上記の様に、特にパラメータを受け渡さない、若しくは (い) のように特に重要ではないパラメータを渡すだけであれば対策は不要だが
重要な情報の入力や修正を行う場合は、対策を行った方が良い。

設問3
(1)
攻撃者は、画面 2-1 を経由させずに直接画面 2-2 へアクセスさせるから(34字)
【XSS 脆弱性に説明と修正】に以下の記述がある

つまり「https://kensho.m-sha.co.jp/Gamen2_2」のリンクを踏むことで
直接画面2-2に遷移できる。
そのため、2-1から2-2の遷移時に入力値のチェックをしてもXSSは防げない。

(2)
i:サーバサイド(6字)
クライアント(ブラウザ)側で入力値を検証するプログラムを導入すると
これを回避される可能性がある
その為、クライアントではなくサーバ側(サーバサイド)で検証を行う。

(3)
j:URL
HTMLの aタグ の href属性など
URLを出力する箇所に「javascript:aaaa」のようにスクリプトをセットされる可能性がある
このため、URLを出力する箇所では文字列のチェックを行う。

上記対策も安全なWebサイトの作り方に記載されている。

感想
Web開発系ではやさしめな印象
「安全なWebサイトの作り方」読んでいれば点を稼げた
IPAの公式資料は試験的にも有益なので、可能な限り目を通しておきたい。

コメント

タイトルとURLをコピーしました