Ana icerigi atla

Web Uygulama Güvenlik Testi: OWASP Top 10 Açıklaması

Siber Güvenlik27 Ocak 2026

Web uygulamaları, modern iş dünyasının temel taşı. E-ticaret sitesi, müşteri paneli, online randevu sistemi, kurumsal portal — hepsi birer web uygulaması. Ve hepsi saldırılara açık. OWASP Top 10, web uygulamalarındaki en kritik güvenlik risklerini sıralayan, dünya çapında kabul görmüş referans listesidir. Bu rehberde, OWASP Top 10 listesindeki her bir güvenlik açığını, gerçek dünya örnekleriyle açıklıyor ve korunma yöntemlerini sunuyoruz. OWASP Nedir? Open Web Application Security Project (OWASP), web uygulama güvenliğini iyileştirmeyi amaçlayan, kar amacı gütmeyen bir topluluktur. OWASP'ın en bilinen çıktısı, düzenli olarak güncellenen Top 10 listesidir. Bu liste, sızma testlerinde kontrol çerçevesi olarak, yazılım geliştirmede güvenlik gereksinimleri olarak ve uyumluluk denetimlerinde referans olarak kullanılır. OWASP Top 10 — Detaylı Açıklama A01: Bozuk Erişim Kontrolü (Broken Access Control) Listenin birinci sırasındaki risk. Kullanıcıların yetkileri dışındaki kaynaklara, fonksiyonlara veya verilere erişebilmesi. Örnekler: URL'deki ID parametresini değiştirerek başka bir kullanıcının profilini görme (IDOR). Normal kullanıcı hesabıyla admin paneline erişme. API endpoint'ine yetki kontrolü olmadan erişim. Kendi profilini düzenlerken başka birinin profilini değiştirebilme. Korunma: Her istek için sunucu tarafında yetki kontrolü. Varsayılan olarak erişimi reddet, açıkça izin ver. Endpoint bazında yetkilendirme (middleware). Rate limiting ve anomali tespiti. Düzenli erişim kontrol testleri. A02: Kriptografik Hatalar (Cryptographic Failures) Hassas verilerin yetersiz kriptografik korumaya sahip olması veya hiç korunmaması. Örnekler: Parolaların düz metin olarak veritabanında saklanması. HTTP üzerinden hassas veri iletimi (HTTPS olmaması). Zayıf veya eskimiş şifreleme algoritmaları (MD5, SHA1, DES). Sabit veya tahmin edilebilir şifreleme anahtarları. Korunma: Parolaları bcrypt, scrypt veya Argon2 ile hash'leme. HTTPS zorunluluğu (HSTS ile). Güncel ve güçlü şifreleme algoritmaları (AES-256, RSA-2048+). Hassas verileri gereksiz yere saklamama — işi bittiğinde silme. A03: Injection Kullanıcı girdisinin doğrulanmadan sorguya veya komuta dahil edilmesi. Türleri: SQL injection (veritabanı), NoSQL injection, OS command injection, LDAP injection, XPath injection. SQL injection örneği: Giriş formunda kullanıcı adı yerine ' OR '1'='1' -- girildiğinde, sorgu manipüle edilerek tüm kullanıcı verileri döndürülebilir. Korunma: Parametrik sorgular (prepared statements) — en etkili çözüm. ORM kullanımı (Prisma, Sequelize, TypeORM). Kullanıcı girdisi doğrulama ve beyaz liste yaklaşımı. Minimum veritabanı yetkileri. WAF (Web Application Firewall). A04: Güvensiz Tasarım (Insecure Design) Güvenliğin uygulama tasarım aşamasında düşünülmemesi. Kod hatası değil, mimari eksiklik. Örnekler: Parola sıfırlama sürecinde güvenlik sorusu olarak "annenizin kızlık soyadı" kullanmak (sosyal medyadan bulunabilir). Ödeme sürecinde fiyat bilgisini istemci tarafında tutmak (manipüle edilebilir). Dosya yükleme fonksiyonunda dosya türü kontrolü olmadan sunucuya yükleme izni vermek. Korunma: Tehdit modellemesi (threat modeling) geliştirme sürecinin başında yapılmalı. Güvenlik gereksinimleri, fonksiyonel gereksinimlerle birlikte tanımlanmalı. Tasarım kalıplarında güvenlik ilkelerini (defense in depth, fail secure) uygulamak. A05: Güvenlik Yanlış Yapılandırması (Security Misconfiguration) Varsayılan ayarların değiştirilmemesi, gereksiz özelliklerin açık bırakılması, hata mesajlarının detaylı bilgi sızdırması. Örnekler: Varsayılan admin parolası (admin/admin, root/root). Hata mesajlarında stack trace, veritabanı bilgileri gösterme. Gereksiz HTTP metotları (PUT, DELETE, TRACE) açık. Dizin listeleme (directory listing) aktif. Debug modu üretim ortamında açık. Korunma: Tüm varsayılan hesap ve parolaları değiştirme. Üretim ortamında debug/geliştirme özelliklerini kapatma. HTTP güvenlik başlıkları (CSP, HSTS, X-Frame-Options). Gereksiz port, servis ve özellikleri kapatma. Düzenli güvenlik yapılandırma denetimi. A06: Güncel Olmayan ve Savunmasız Bileşenler Bilinen güvenlik açıklarına sahip kütüphaneler, framework'ler veya yazılım bileşenleri kullanmak. Örnekler: Eski jQuery sürümü ile XSS açığı. Güncellenmeyen WordPress eklentileri. Bilinen CVE'si olan npm paketleri. Desteği sona ermiş PHP veya Node.js sürümleri. Korunma: Bağımlılıkları düzenli güncelleme. npm audit, pip audit, Snyk gibi araçlarla otomatik zafiyet taraması. Kullanılmayan bağımlılıkları kaldırma. Güvenlik bültenlerini takip etme. A07: Kimlik Doğrulama ve Tanımlama Hataları Kullanıcı kimliğinin doğrulanması ve oturum yönetimindeki zafiyetler. Örnekler: Brute force koruması olmaması. Zayıf parola politikası (minimum 4 karakter, karmaşıklık zorunluluğu yok). Oturum token'larının URL'de görünmesi. Parola sıfırlama token'larının süresiz geçerli olması. MFA seçeneği olmaması. Korunma: Rate limiting ve hesap kilitleme. Güçlü parola politikası (minimum 12 karakter). MFA zorunluluğu (en azından admin hesaplar için). Güvenli oturum yönetimi (HttpOnly, Secure, SameSite cookie flag'leri). Parola sıfırlama token'larında süre sınırı. A08: Yazılım ve Veri Bütünlüğü Hataları Yazılım güncelleme süreçleri, CI/CD pipeline'ları ve veri bütünlüğünün korunamaması. Örnekler: Doğrulanmamış kaynaklardan yazılım güncelleme. CI/CD pipeline'ına yetkisiz erişim. Güvenilmeyen CDN'lerden JavaScript kütüphanesi yükleme. Deserialization zafiyetleri. Korunma: Yazılım güncellemelerinde dijital imza doğrulama. CI/CD pipeline güvenliği (erişim kontrolü, audit log). Subresource Integrity (SRI) kullanma. Güvenli deserialization uygulamaları. A09: Güvenlik Günlüğü ve İzleme Eksiklikleri Saldırıların tespit edilememesi, yetersiz log tutma ve izleme mekanizmalarının olmaması. Örnekler: Giriş denemelerinin loglanmaması. Kritik işlemlerin (parola değişikliği, yetki değişikliği) kayıt altına alınmaması. Logların düzenli incelenmemesi. Alarm mekanizmalarının olmaması. Korunma: Tüm kimlik doğrulama, erişim kontrolü ve kritik iş işlemlerini logla. Merkezi log yönetimi (SIEM). Anomali tespiti ve otomatik alarm. Log bütünlüğünü koruma (değiştirilme karşıtı). Düzenli log inceleme. A10: Sunucu Tarafı İstek Sahteciliği (SSRF) Web uygulamasının, kullanıcı tarafından sağlanan URL'ye sunucu tarafından istek yapması ve bu yolla iç ağ kaynaklarına erişim sağlanması. Örnekler: URL girilen bir alanda (profil resmi URL'si, webhook URL'si) iç ağdaki servislere istek yaptırma. Bulut ortamında metadata endpoint'ine erişim (169.254.169.254). İç ağdaki diğer servislere port tarama. Korunma: Kullanıcı girdisindeki URL'leri doğrulama ve beyaz liste. İç ağ IP aralıklarını engelleme. Ağ segmentasyonu. DNS çözümleme sonuçlarını doğrulama. Web Uygulamanızı Nasıl Test Etmelisiniz? OWASP Top 10, test kapsamınız için mükemmel bir başlangıç noktasıdır. Profesyonel bir web uygulama güvenlik testi şu adımları içerir: Otomatik tarama: Burp Suite, OWASP ZAP gibi araçlarla hızlı zafiyet taraması. Manuel test: Otomatik araçların yakalayamadığı iş mantığı hataları, zincir saldırılar ve karmaşık zafiyetlerin uzman tarafından test edilmesi. Raporlama: Her bulgu için risk derecelendirmesi, kanıt (ekran görüntüsü, HTTP istek/yanıt) ve düzeltme önerisi. Yeniden test: Düzeltmeler sonrası doğrulama. Sonuç OWASP Top 10, web uygulama güvenliğinin temel referans çerçevesidir. Bu listedeki zafiyetlerin çoğu, doğru geliştirme pratikleri ve düzenli güvenlik testleriyle önlenebilir. Önemli olan, güvenliği geliştirme sürecinin bir parçası haline getirmek — proje bittikten sonra düşünülen bir ek değil. Diyarbakır'da web uygulamalarınızın OWASP uyumlu güvenlik testi için VefaSoft ile iletişime geçebilirsiniz.

İlgili Yazılar:

Sızma Testi (Penetrasyon Testi) Nedir? Kapsamlı Rehber SQL Injection Nedir? Nasıl Önlenir? XSS (Cross-Site Scripting) Saldırısı Nedir? Korunma Yolları Siber Güvenlik Nedir? 2026 Rehberi