Web Foundations & Databases · beginner · ~12 min
Separate authentication from authorization and spot weak points in account flows.
Authentication proves who you are; authorization decides what you may do — they're distinct, and missing authZ (broken access control) is the top web risk. Login, password-reset, email-verification, and MFA flows each have characteristic weaknesses.
Broken access control and account-flow flaws (reset-token leakage, MFA bypass, username enumeration) are among the highest-impact web findings. Keeping authN vs authZ straight is the lens for finding them.
AuthN vs authZ. Identity vs permission. Broken access control. Missing per-action authZ — the #1 risk. Reset tokens. Unguessable, single-use, expiring. Anti-enumeration. Uniform errors, rate limits. MFA bypass. Skippable/reusable/tamperable steps.
Two words that sound alike and are constantly confused — getting them straight is essential.
Most account-flow vulnerabilities are missing or per-step-only authorization: the app checks who you are at login but not whether this request is allowed. Every sensitive action needs its own server-side authZ check.
Authentication and authorization are different questions; most account-flow and access-control bugs come from enforcing identity but not per-action permission. Reset, verification, and MFA flows each need careful, server-side checks.