

0 / 2 embers
0 / 3000 xp
click for more info
Complete a lesson to start your streak
click for more info
Still calibrating
click for more info
Not enough gems
Cost: 6 gems
1: Principle of Least Privilege
incomplete
2: Preventing Broken Access Control
incomplete
3: Don't Trust the Client
incomplete
4: Access Control Models
incomplete
5: Attribute-Based Access Control
incomplete
6: RBAC vs. ABAC
incomplete
7: Insecure Direct Object References
incomplete
8: Securing File Downloads
incomplete
9: Signed URLs
incomplete
Back
ctrl+,
Next
ctrl+.
This lesson's interactive features are locked, please to keep using them
Attribute-Based Access Control (ABAC) makes authorization decisions by evaluating facts about a request:
Two customers may have the same customer role, but that role shouldn't let Alice edit or delete Bob's review! Furthermore, hiding those controls from Alice may streamline the user experience, but it doesn't enforce authorization – she could just call the handlers directly with Bob's review ID.
The server needs to validate the relationship between the user and the specific review:
A customer can edit or delete a review only when the review's
user_idmatches the authenticated user'sid.
ABAC offers nice flexibility, but its policies can become scattered and hard to audit. Use reusable policy helpers where possible to keep ownership rules consistent across related actions.
Bearly Secure only shows users controls for their own reviews, but the review handlers don't check who wrote the requested review. Enforce review ownership across every review-management handler.
With Bearly Secure still running, run and submit the CLI tests from the project root.