Furkan KapukayaYazılım geliştirme
Güvenlik ve KVKK4 dk okuma

OWASP Top 10 (2025) Nedir? Web Uygulamalarında En Kritik 10 Risk

OWASP Top 10 2025 listesindeki erişim kontrolü, yanlış yapılandırma, tedarik zinciri, enjeksiyon ve hata yönetimi risklerinin açıklaması ve korunma yolları.

OWASP (Open Worldwide Application Security Project), yazılım güvenliğini iyileştirmeye odaklanan kâr amacı gütmeyen bir topluluktur. En bilinen çalışması olan OWASP Top 10, web uygulamalarındaki en kritik güvenlik risklerini listeler. 2021'den sonraki ilk büyük güncelleme olan 2025 sürümü iki yeni kategori içeriyor. Bu yazıda her riski sade bir dille açıklayıp temel korunma yollarını özetliyoruz.

A01: Bozuk Erişim Kontrolü

Kullanıcının yetkisi olmayan verilere veya işlemlere erişebilmesidir. Örneğin URL'deki sipariş numarasını değiştirerek başkasının siparişini görmek. 2025 sürümünde sunucu taraflı istek sahteciliği (SSRF) de bu kategoriye dahil edildi.

Korunma: Yetki kontrolünü her istekte sunucu tarafında yapın; "varsayılan olarak reddet" ilkesini uygulayın; kaynak sahipliğini doğrulayın.

A02: Güvenlik Yanlış Yapılandırması

Varsayılan parolalar, açık bırakılan yönetim panelleri, ayrıntılı hata mesajları, gereksiz servisler ve eksik güvenlik başlıkları. 2025'te beşinci sıradan ikinciye yükseldi.

Korunma: Standart, tekrarlanabilir sunucu yapılandırması; üretimde hata ayrıntılarının gizlenmesi; güvenlik başlıkları (CSP, HSTS vb.); düzenli yapılandırma denetimi.

A03: Yazılım Tedarik Zinciri Hataları (yeni)

2021'deki "savunmasız ve güncel olmayan bileşenler" kategorisinin genişletilmiş halidir. Kullandığınız paketler, derleme araçları ve dağıtım süreçlerinin tamamını kapsar. Kötü amaçlı paket sürümleri ve ele geçirilmiş bağımlılıklar gerçek ve güncel bir tehdittir.

Korunma: Bağımlılıkları düzenli güncelleyin ve güvenlik açıklarını tarayın; paket sürümlerini sabitleyin; yalnızca güvenilir kaynakları kullanın; derleme ve yayın süreçlerine erişimi sınırlayın.

A04: Kriptografik Hatalar

Hassas verinin şifrelenmeden saklanması veya iletilmesi, zayıf algoritmalar, parolaların düz metin veya zayıf özetle saklanması.

Korunma: Her yerde HTTPS; parolalar için bcrypt, scrypt, Argon2 veya PBKDF2 gibi yavaş özet fonksiyonları; anahtarların kaynak kod dışında yönetimi.

A05: Enjeksiyon

SQL enjeksiyonu, komut enjeksiyonu ve XSS gibi, kullanıcı girdisinin kod olarak yorumlanmasıyla oluşan açıklar.

Korunma: Parametreli sorgular veya ORM kullanımı; girdileri doğrulama; çıktıları bağlama göre kodlama (encoding); Content Security Policy.

// Yanlış: kullanıcı girdisi doğrudan SQL'e ekleniyor
var sql = "SELECT * FROM Musteriler WHERE Ad = '" + ad + "'";

// Doğru: parametreli sorgu
var cmd = new SqlCommand("SELECT * FROM Musteriler WHERE Ad = @ad", baglanti);
cmd.Parameters.AddWithValue("@ad", ad);

A06: Güvensiz Tasarım

Kodlama hatasından değil, tasarım aşamasında güvenliğin düşünülmemesinden kaynaklanan sorunlar. Örneğin parola sıfırlamada tahmin edilebilir sorular kullanmak veya hız sınırı olmayan bir doğrulama kodu ekranı.

Korunma: Tasarım aşamasında tehdit modelleme; kötüye kullanım senaryolarını düşünmek; güvenli tasarım kalıplarını kullanmak.

A07: Kimlik Doğrulama Hataları

Zayıf parola politikaları, kaba kuvvet saldırılarına karşı koruma olmaması, oturum yönetimi hataları.

Korunma: İki faktörlü doğrulama; giriş denemelerini sınırlama; güvenli oturum ve token yönetimi.

A08: Yazılım veya Veri Bütünlüğü Hataları

Güncellemelerin, kodun veya verinin bütünlüğü doğrulanmadan güvenilmesi; güvensiz serileştirme.

Korunma: İmzalı paketler ve güncellemeler; bütünlük kontrolleri; korumalı yayın süreçleri.

A09: Güvenlik Loglama ve Uyarı Hataları

Saldırıların fark edilmemesi. Başarısız giriş denemeleri, yetki hataları gibi olaylar loglanmıyor veya kimse uyarı almıyorsa saldırı aylarca sürebilir.

Korunma: Güvenlikle ilgili olayları kaydedin, logları değiştirilmeye karşı koruyun, anlamlı uyarılar kurun.

A10: İstisnai Durumların Yanlış Yönetimi (yeni)

Uygulamanın beklenmedik durumlarda (hatalar, kaynak tükenmesi, beklenmeyen girdiler) güvensiz davranması. Hata durumunda yetki kontrolünü atlayan ("fail open") bir kod buna örnektir.

Korunma: Merkezi ve güvenli hata yönetimi; hata durumunda güvenli tarafta kalma ("fail closed"); kaynak sınırları; uç durumların test edilmesi; kullanıcıya iç hata ayrıntısı göstermemek.

İşletmeler için pratik kontrol listesi

  1. Tüm yazılım ve bağımlılıklar güncel mi?
  2. Yönetim panelleri güçlü parola ve 2FA ile korunuyor mu?
  3. Veritabanı sorguları parametreli mi?
  4. Hata mesajları iç bilgi sızdırıyor mu?
  5. Yedekler alınıyor ve test ediliyor mu? Bkz. yedekleme stratejisi.
  6. Şüpheli olaylar için loglama ve uyarı var mı?

Yapay zekâ ile üretilen kodda bu risklerin nasıl yönetileceğini AI ile kod yazarken güvenlik yazısında ele aldık.

Sık sorulan sorular

OWASP Top 10 bir standart mı?

Resmi bir uyumluluk standardı değil, bir farkındalık belgesidir. Ancak birçok güvenlik değerlendirmesinde referans olarak kullanılır.

Küçük bir site için de geçerli mi?

Evet. Saldırıların çoğu otomatik araçlarla yapılır ve sitenin büyüklüğüne bakmaz.

Sonuç

OWASP Top 10, web uygulamalarında nereye odaklanmanız gerektiğini gösteren bir yol haritasıdır. Erişim kontrolü, doğru yapılandırma ve güvenilir bağımlılıklar 2025 listesinin öne çıkan başlıklarıdır. Uygulamanızın güvenlik gözden geçirmesi için iletişime geçebilirsiniz.