- Authentication: are they who they say they are?
- Communication: transferring data through unreliable middleman
- Authorization: giving resource access to the right people
- Control: avoiding unexpected open-endedness in your app. Limiting capabilities of agents.
- Injection: server-side code execution
- Broken Authentication: allows for impersonation
- XSS: client-side code execution
- Direct references: access control can be circumvented (Microsoft sharing private documents via link shortener)
- Security misconfiguration: vulnerable default/inherited settings
- Data exposure: data is insecurely transmitted or secured
- Missing Access control: users can do things they shouldn't be allowed to do (access to actions rather than data)
- XSRF: abuse the target website's trust in the browser (abusing cookies to impersonate users)
- Vulnerable components: insecure third-party tools (heartbleed openSSL)
- Unvalidated Redirects: abusable open-ended forwarding