OWASP Top 10, web uygulama güvenliğinin defakto standart listesi. Her geliştirici bu 10 maddeyi bilmek zorunda. 2021 listesi (en güncel) hâlâ geçerli, 2026 güncellemesi çalışmaları sürüyor.
Top 10 — 2021 (geçerli)
- 01A01 — Broken Access Control
- 02A02 — Cryptographic Failures
- 03A03 — Injection (SQL, NoSQL, XSS dahil)
- 04A04 — Insecure Design
- 05A05 — Security Misconfiguration
- 06A06 — Vulnerable and Outdated Components
- 07A07 — Identification and Authentication Failures
- 08A08 — Software and Data Integrity Failures
- 09A09 — Security Logging and Monitoring Failures
- 10A10 — Server-Side Request Forgery (SSRF)
A01 — Broken Access Control
En yaygın açık. Kullanıcı yetkisi olmayan endpoint'e erişim. "/admin/users" sayfası login kontrol etmeden bilgi gösteriyor. Çözüm: her endpoint'te authentication + authorization check. Default deny prensibi.
A02 — Cryptographic Failures
- Şifre plain text saklama — bcrypt/Argon2 ile hash
- Eski TLS (1.0/1.1) destekleme — TLS 1.2+ zorla
- Hassas veri (kart, KVKK) şifrelenmeden DB'de — at-rest encryption
- API key URL'de göndermek — Authorization header'da
- MD5/SHA1 hash kullanmak — modern hash algoritma
A03 — Injection
SQL Injection, XSS, Command Injection. Klasik sebep: kullanıcı input'unun query/script içinde direkt kullanılması. Çözüm: parameterized query (prepared statement), input validation, output encoding, ORM kullanım.
A04 — Insecure Design
Tasarım aşamasında güvenlik düşünülmemiş. Örnek: "forgot password" sıkı rate limit'siz brute force imkanı. Threat modeling süreci + güvenli mimari pattern'leri.
A05 — Security Misconfiguration
- Default credentials açık ("admin/admin")
- Debug mode production'da
- Verbose error message (stack trace görünür)
- Gereksiz HTTP method açık (TRACE, OPTIONS)
- CORS '*' yapılandırması
- Default sample data + accounts
A06 — Vulnerable Components
Eski npm paketler, eski Wordpress eklentisi. Çözüm: Dependabot, Snyk, npm audit otomatik. Aylık dependency güncellemesi rutini. CVE database takip.
A07 — Auth Failures
- Brute force koruması yok — rate limit + CAPTCHA
- Weak password politikası — min 12 karakter, complexity
- Session timeout yok — 30 dk inaktivite logout
- Session token URL'de — cookie'de + httpOnly
- MFA yok — TOTP 2FA en azından admin için
A08 — Data Integrity
Imzasız update package'ları, CI/CD pipeline güvenlik açığı (supply chain attack). Çözüm: Subresource Integrity (SRI), signed releases, isolated build environment.
A09 — Logging Failures
Saldırı tespit edilemez. Auth fail, admin action, permission change log'lanmalı. Centralized log (ELK, Loki) + SIEM (Security Information Event Management) ile anomaly detection.
A10 — SSRF
Server'a kullanıcı verisi ile başka URL fetch ettirme. Internal network erişim. Çözüm: allowlist URL, internal IP block, DNS rebinding koruması.
Modern security headers
- Content-Security-Policy
- XSS önler
- Strict-Transport-Security
- HTTPS zorlar (HSTS)
- X-Frame-Options
- Clickjacking
- X-Content-Type-Options
- MIME sniffing
- Referrer-Policy
- Referer leak
- Permissions-Policy
- Feature kısıt
Security audit araçları
- OWASP ZAP — açık kaynak penetration test
- Burp Suite — pro tool
- Snyk — dependency vulnerability
- Trivy — container scan
- GitGuardian — secret leak
- Mozilla Observatory — HTTP header audit
Şunu yapmayın: güvenliği son aşamada düşünmek
Tasarım sonrası güvenlik eklemek 10x daha pahalı. Shift-left security — başlangıçtan threat model, dependency scan, code review. CI/CD'ye security check entegre.
NotOWASP audit + güvenlik sıkılaştırma: +90 537 729 40 97 (WhatsApp). 7 iş günü içinde detaylı rapor + fix önerileri.