← All articles
Cybersec·September 10, 2026·10 min read
The OWASP Top 10 in Plain English
By Eduardo Dionisio
The OWASP Top 10 is the industry's most-watched list of web application risks. It is not a checklist of exotic exploits — it is the stuff real breaches are made of, and understanding it is table stakes for anyone writing web code.
The big three
- Injection (SQL, OS, LDAP) — untrusted data reaches an interpreter. The classic SQL injection is the poster child. Defense: parameterized queries, never string-concatenate user input into a query.
- Broken authentication — weak passwords, missing rate limits, session tokens that leak or don't expire. Defense: MFA, secure session management, lockout on brute force.
- Cross-site scripting (XSS) — attacker-supplied script runs in another user's browser. Defense: output-encode everything, use a Content Security Policy.
The ones developers keep missing
- Insecure Direct Object References (IDOR) — /orders/1234 with no check that you own order 1234. Defense: authorize on every object access, server-side.
- Security misconfiguration — default credentials, debug endpoints in prod, verbose error messages. Defense: harden defaults, disable what you don't need.
- SSRF — the server fetches a URL you control, reaching internal services. Defense: validate and allowlist outbound targets.
A concrete example
python
# VULNERABLE: string concatenation
cursor.execute("SELECT * FROM users WHERE name = '" + name + "'")
# SAFE: parameterized query
cursor.execute("SELECT * FROM users WHERE name = ?", (name,))The fix is one line, but only if you know why the first version is dangerous. That's the value of the Cybersec arena: it drills the reasoning, not just the memorized answer. Think like the attacker, and the defense becomes obvious.