← Home ← Codex ← DEBT ← Engine
Browse by Category
+ added · updated 7d
← Back to glossary

OWASP Top 10

Security PHP 5.0+ Beginner
debt(d7/e5/b3/t7)
d7 Detectability Operational debt — how invisible misuse is to your safety net

Closest to 'only careful code review or runtime testing' (d7). The detection_hints note automated=no and while tools like owasp-zap, burpsuite, and semgrep can surface some issues, coverage is incomplete — business logic flaws and application-specific gaps listed in the misconception are silent until testing or production incidents expose them.

e5 Effort Remediation debt — work required to fix once spotted

Closest to 'touches multiple files / significant refactor in one component' (e5). The quick_fix describes an annual mapping exercise across the entire application, and common_mistakes highlight that addressing items requires understanding underlying risks beyond framework-level fixes, implying meaningful cross-component work rather than a single-line patch.

b3 Burden Structural debt — long-term weight of choosing wrong

Closest to 'localised tax' (b3). OWASP Top 10 is a reference standard and audit framework applied to web/api contexts. It imposes a recurring review cost and shapes security prioritisation, but it is not load-bearing across every code change — it functions more as a periodic checklist than a pervasive structural dependency.

t7 Trap Cognitive debt — how counter-intuitive correct behaviour is

Closest to 'serious trap' (t7). The misconception explicitly states that covering OWASP Top 10 is mistaken for complete security coverage — this directly contradicts the intuitive reading of 'top 10 security checklist', and common_mistakes confirm developers routinely use absence from the list to deprioritise real vulnerabilities, a consequential and recurring wrong belief.

About DEBT scoring →

Also Known As

OWASP Top 10 Open Worldwide Application Security Project

TL;DR

The ten most critical web application security risk categories, published by OWASP and updated periodically.

Explanation

The OWASP Top 10 is the most widely referenced web application security awareness document. It groups vulnerability classes into ten categories ranked by prevalence and impact. The 2021 edition introduced Insecure Design (A4) and Software and Data Integrity Failures (A8). Each category maps to multiple CWEs. PHP Clarity Lab maps findings to their OWASP category so you can understand the broader risk context, not just the specific vulnerability.

Common Misconception

Covering the OWASP Top 10 means your application is secure. The Top 10 covers the most common categories, not all vulnerabilities — business logic flaws, race conditions, and many application-specific issues are not on the list.

Why It Matters

The OWASP Top 10 represents the most critical and prevalent web application risks — it provides a shared language for developers, testers, and management to prioritise security investment.

Common Mistakes

  • Treating the OWASP Top 10 as a complete security checklist rather than a prioritised starting point.
  • Addressing items purely at the framework level (e.g. ORM for SQLi) without understanding the underlying risk.
  • Not revisiting OWASP guidance when the list is updated — the 2021 list differs significantly from 2017.
  • Using 'not on the OWASP Top 10' as justification for deprioritising a real vulnerability.

Code Examples

✗ Vulnerable
// Checking only OWASP Top 10 — missing business logic flaws:
function securityAudit($app) {
    checkForSQLi($app);
    checkForXSS($app);
    // Business logic, IDOR, auth flaws not checked
    return 'Secure'; // False confidence
}
✓ Fixed
# OWASP Top 10 (2021) — PHP quick-reference mitigations

# A01 Broken Access Control
$order = Order::findOrFail($id);
if ($order->user_id !== auth()->id()) abort(403);

# A02 Cryptographic Failures
$hash = password_hash($pw, PASSWORD_ARGON2ID); // not md5/sha1

# A03 Injection
$stmt = $pdo->prepare('SELECT * FROM users WHERE email = ?');
$stmt->execute([$email]);

# A04 Insecure Design — threat model early; use security patterns

# A05 Security Misconfiguration
# display_errors=Off, expose_php=Off, directory listing off

# A06 Vulnerable Components
# composer audit on every CI run

# A07 Auth Failures
# bcrypt + MFA + session_regenerate_id() on login

# A08 Software Integrity
# Verify composer.lock; sign deployments

# A09 Logging Failures
# Log auth events: user, IP, timestamp, outcome

# A10 SSRF
# Validate and allowlist outbound URLs

Added 15 Mar 2026
Edited 22 Mar 2026
Views 72
Rate this term
No ratings yet
🤖 AI Guestbook educational data only
| |
Last 30 days
0 pings T 0 pings W 1 ping T 0 pings F 0 pings S 0 pings S 0 pings M 0 pings T 0 pings W 1 ping T 2 pings F 1 ping S 1 ping S 0 pings M 0 pings T 0 pings W 1 ping T 0 pings F 1 ping S 0 pings S 0 pings M 0 pings T 3 pings W 0 pings T 1 ping F 1 ping S 0 pings S 0 pings M 0 pings T 0 pings W
No pings yet today
No pings yesterday
Perplexity 9 Amazonbot 7 Scrapy 7 SEMrush 6 ChatGPT 6 Ahrefs 5 Bing 4 Google 3 PetalBot 3 Meta AI 1 Sogou 1 Twitter/X 1 Applebot 1
crawler 49 crawler_json 5
DEV INTEL Tools & Severity
🔵 Info ⚙ Fix effort: Medium
⚡ Quick Fix
Map your application against the OWASP Top 10 annually and prioritise fixes by severity — start with A01 Broken Access Control
📦 Applies To
PHP 5.0+ web api
🔗 Prerequisites
🔍 Detection Hints
Reference document — use for security audit checklist and vulnerability classification
Auto-detectable: ✗ No owasp-zap burpsuite semgrep
⚠ Related Problems
🤖 AI Agent
Confidence: Low False Positives: High ✗ Manual fix Fix: High Context: File


✓ schema.org compliant