
基本情報技術者試験基礎・応用
条件を読む・根拠を説明する
画面とAPIで異なる権限判定
条件を整理し、答えを選んでから解き方を確認しましょう。
社内申請システムを次の構成とする。 ・申請RにはownerIdとstatusがある。 ・一覧画面は本人の申請だけを表示する。 ・GET /requests/id はログインの有無だけ確認し全文を返す。 ・POST /requests/id/approve は承認者ロールを確認する。 ・業務規則は「本人は自分の申請を閲覧、承認者は担当部署の申請を閲覧・承認可。ただし自己承認は禁止」。 一般利用者がURLのidを変えて他人の申請を見られた。承認者は自分の申請も承認できた。両方を是正する方針はどれか。
答え・解き方を読む
各APIで対象と利用者の関係を確認し承認時は部署と自己承認も判定
考える順序
- 1画面で絞ってもAPIへ別IDの要求はできる
- 2閲覧は所有者または担当部署の承認者かをサーバで判定
- 3承認はロール・担当部署・本人でないことを確認する
選択肢ごとの理由
- 比較 · 全APIにログイン確認を追加し承認者なら部署に関係なく許可
ログイン確認だけでは部署や自己承認の規則を表現できません。
- 比較 · 申請IDを長い乱数へ変更し認可処理は維持
推測しにくいIDは補助であり認可の代替になりません。
- 正解 · 各APIで対象と利用者の関係を確認し承認時は部署と自己承認も判定
画面で絞ってもAPIへ別IDの要求はできる。閲覧は所有者または担当部署の承認者かをサーバで判定。承認はロール・担当部署・本人でないことを確認する。
- 比較 · 一覧だけで他人のIDを隠し承認者ロールの判定は維持
IDを隠すだけではAPIの対象別権限が欠けたままです。