Cyber Security OWASP Top 10

The OWASP Top 10 is a regularly updated, community-researched ranking of the most critical security risks facing web applications, used as a shared checklist for developers, testers, and security teams.

What Is OWASP, and What Is the Top 10?

OWASP (the Open Worldwide Application Security Project) is a nonprofit community that produces free, vendor-neutral security resources. Its best-known project is the OWASP Top 10, a document that ranks the most critical risks to web applications based on large-scale data contributed by security firms combined with a survey of practitioners. It isn't a law or a certification — it's an awareness document meant to give teams a common vocabulary and a starting checklist. The list is periodically revised as attack patterns and defenses change; the categories below reflect the 2021 edition, the most recent full revision at the time of writing.

RankCategoryWhat it covers
A01Broken Access ControlUsers acting outside their intended permissions — viewing or editing another user's data, bypassing an authorization check via a modified URL or ID.
A02Cryptographic FailuresSensitive data exposed because it was weakly encrypted, unencrypted in transit or at rest, or protected with outdated algorithms.
A03InjectionUntrusted input is interpreted as code or commands — SQL injection, command injection, cross-site scripting (XSS).
A04Insecure DesignMissing or ineffective security controls baked into the architecture itself, not just implementation bugs — a design that has no way to be built securely.
A05Security MisconfigurationDefault credentials, unnecessary features enabled, overly verbose error messages, missing security headers, unpatched settings.
A06Vulnerable and Outdated ComponentsUsing libraries, frameworks, or platforms with known vulnerabilities, or components that are no longer maintained.
A07Identification and Authentication FailuresWeak password rules, missing multi-factor authentication, session tokens that don't expire or aren't invalidated on logout.
A08Software and Data Integrity FailuresTrusting updates, plugins, or CI/CD pipelines without verifying integrity, e.g. unsigned software updates or insecure deserialization.
A09Security Logging and Monitoring FailuresInsufficient logging, alerting, or monitoring, so breaches go undetected for long periods and can't be reconstructed after the fact.
A10Server-Side Request Forgery (SSRF)An application is tricked into making requests to an unintended destination, often reaching internal systems that should not be reachable from outside.

A Closer Look: Broken Access Control

Broken Access Control tops the list because it's both common and easy to trigger. A classic example is an 'insecure direct object reference': an invoice URL like /invoices/1042 works fine, but changing it to /invoices/1043 shows someone else's invoice because the server never checked whether the logged-in user actually owns record 1043 — it only checked that the user was logged in at all. The fix is always the same: authorization checks must run on the server for every request that touches a specific resource, using the identity of the current user, not just whatever ID appears in the request.

Example: Injection via String-Built SQL

// VULNERABLE: user input is concatenated directly into SQL
const query = "SELECT * FROM users WHERE email = '" + email + "'";
db.query(query);
// an attacker submitting  ' OR '1'='1  changes the query's meaning entirely

// FIXED: parameterized query keeps data separate from code
const query = "SELECT * FROM users WHERE email = ?";
db.query(query, [email]);

Using the Top 10 in Practice

The list works best as a lens, not a finish line. Passing a Top-10-focused scan doesn't mean an application is secure — it means the ten most common categories of mistake have been checked for. Teams typically use it to structure secure-coding training, to shape what a code review or penetration test looks for, and to prioritize which fixes to tackle first when a scanner reports dozens of findings at once.

Note: The category names and rankings shift between OWASP Top 10 editions as the industry's biggest risks change — for example, injection used to hold the top spot, and access control moved up as APIs and complex permission models became more common. Treat the ranking as a snapshot of current trends, not a permanent hierarchy.
  • Use it as a checklist during design and code review, not only during testing.
  • Map automated scanner and pentest findings back to these categories to spot systemic gaps.
  • Pair it with framework-specific guidance — the Top 10 tells you what to worry about, not how your particular language or framework prevents it.
  • Revisit training materials whenever a new edition is published.
Note: When learning the Top 10, focus on the underlying pattern behind each category rather than memorizing the names — most real vulnerabilities are a mix of two or three categories at once (e.g. a misconfigured, outdated component that also has a broken access control bug).

Exercise: Cyber Security Application Security

What is SQL injection?