OverviewEnforcing access control in the presentation layer means that the developer does not show buttons and links for functions and assets that are not authorized for the user. An attacker, however, is not constrained by the buttons and links presented, and can forge requests for those functions and assets. Forced browsing is one attack that targets this type of vulnerability. Consequences
Exposure period
Platform
Required resources
SeverityVery high -- can result in disclosure of sensitive information or the invocation of protected business functions. Likelihood of exploitWith the source code, this vulnerability is very likely Avoidance and mitigationAccess control must be performed in the business layer, not only the presentation layer. DiscussionThis vulnerability is similar in some ways to Validation performed in client, as the same security checks are performed in two places. Doing validation in the business logic, like doing validation on the server, are critical to security. However, many web applications and web services only do access control in the presentation layer, allowing an attacker to easily access unprotected functions. ExamplesJ2EE //FIXME: JSP example of not showing a link |

