【ぼーら】
BOLA(壊れたオブジェクトレベル認可) とは?
最終更新:
💡 ログイン済みでも、他人のデータは勝手に開けない
APIが、指定されたデータに対してその利用者がその操作を行えるかを適切に確認せず、不正な閲覧・変更・削除などを許すオブジェクト単位の認可の欠陥。
📌 このページのポイント
ログインしていれば、APIからデータを見てもいい?
どんな失敗が起きるの?
IDORと同じ言葉?
IDをUUIDにすれば、防げる?
推測を難しくする補助にはなるけれど、IDを知った人に権限があるとは限らないよ。サーバー側で「この人が、このデータへ、この操作を行えるか」を確認する。所有者だけでなく、共有設定や所属、役割など、サービスのルールに合わせるんだ。
きちんと守れているか、どう確かめるの?
自分たちの検証環境で、権限が違う利用者とデータを用意し、許可される操作と拒否される操作を試そう。読み取りだけでなく、更新・削除・出力なども確認する。IDの形が変わっても権限のない操作が拒否されることを確かめるんだ。
まとめ:ざっくりこれだけ覚えればOK!
「BOLA」って出てきたら「APIが、個々のデータへの操作権限を正しく確認しない欠陥」と思えばだいたいOK!
📖 おまけ:英語の意味
「Broken Object Level Authorization」 = 壊れたオブジェクトレベル認可
💬 オブジェクト(リソース)レベルの認可(Authorization)が壊れている(Broken)状態を指すよ