A user changes an invoice ID in the URL and sees another customer’s invoice. What failed?
Interactive Practice Mode
Formulate your thoughts or take notes before revealing the model solution.
Saved automatically
Model Answer & Deep-Dive Explanation
The application has an object-level authorization failure: it accepted an identifier without confirming the requester may access that specific invoice. Query within the authenticated user’s permitted account or explicitly authorize the object before retu ing it. Apply the rule to downloads, exports, and nested resources as well as detail pages. Random identifiers reduce guessing but do not enforce access control. Add negative tests across two accounts and log suspicious attempts without exposing invoice contents. Review related endpoints because this patte often repeats across a resource family.
Related Questions in Cybersecurity & InfoSec
Explain SQL Injection (SQLi) vulnerabilities and defense mechanisms (Prepared Statements vs ORM)
Intermediate level • 1256 views
What is least privilege, and how would you apply it to a database-backed application?
Easy level • 7 views
Why do parameterized queries prevent SQL injection more reliably than escaping user input?
Medium level • 6 views
How do XSS and CSRF differ, and what controls address each?
Medium level • 6 views
How do authentication, authorization, and accounting differ?
Easy level • 5 views