情報セキュリティ

基本情報技術者試験セキュアコーディング」の問題

情報セキュリティ情報セキュリティ難易度:hard
K社のWebアプリでは、利用者が自分の注文明細をURLのパラメタに含む注文番号で参照する。ある利用者が注文番号の数字を別の値に書き換えたところ、他人の注文明細が表示されてしまった。この問題への根本対策として、最も適切なものはどれか。
注文番号を連番ではなく推測しにくいランダムな文字列に変更する。
要求された明細の持ち主と要求してきた利用者が一致するかをサーバ側で都度照合する。
注文番号のパラメタをURLではなく、画面に表示されないHTTPヘッダに入れて渡す。
注文明細の照会機能の利用に先立ち、利用者にログインを求める。
正解
要求された明細の持ち主と要求してきた利用者が一致するかをサーバ側で都度照合する。

問題の本質は、認証済みであっても『その注文明細を見る権限がその利用者にあるか』というサーバ側の認可チェックが欠落している点にある。要求された明細が要求者本人のものかをサーバ側で必ず検証すれば、番号を書き換えても他人の明細は表示されず、根本的に防げる。

?選択肢ごとの解説

ア ×推測しにくい番号にしても、何らかの手段で他人の番号を知れば参照できてしまい、認可を確認しない限り根本対策にならない(推測困難性に頼る隠蔽に過ぎない)。
イ ○問題の本質は、認証済みであっても『その注文明細を見る権限がその利用者にあるか』というサーバ側の認可チェックが欠落している点にある。要求された明細が要求者本人のものかをサーバ側で必ず検証すれば、番号を書き換えても他人の明細は表示されず、根本的に防げる。
ウ ×パラメタをヘッダで渡しても利用者は値を変更できるため、渡し方を変えるだけでは他人の明細を参照できる問題は解消しない。
エ ×ログイン必須化は認証の話であり、認証済みの利用者が他人の明細を見られるという認可の欠落は解決しない。
この問題の「深掘り・誤答の完全解説・試験のコツ・覚え方」はアプリで。

基本情報技術者試験の全問を、一問ごとにAIの8-ways解説つきで。SRS暗記カード・全真模試・弱点診断まで。まずは無料で。

無料ではじめる →

作成・校閲:ukamiru編集部 · 基本情報技術者試験 過去問 · fe-b-sec-0119

【基本情報技術者試験】セキュアコーディングの問題と解答・解説|ukamiru 過去問