- Güvenlik
- OWASP
- Kontrol Listesi
2026'da Kodunuzda Aramanız Gereken 10 Güvenlik Açığı
Her kod incelemesinde kontrol edilmesi gereken on güvenlik açığı sınıfı: OWASP Top 10 ve CWE eşleştirmeleri ve her biri için tek satırlık çözüm.
· 9 dk okuma · Lina Source LLC
İhlallerin çoğu hâlâ iyi bilinen birkaç hata sınıfıyla başlıyor. Framework'ler daha güvenli hâle geldi, ama hatalar yer değiştirdi: API handler'larına, arka plan işlerine, altyapı koduna ve servisler arasındaki bağlantı koduna. Bu, her denetimde ilk kontrol ettiğimiz liste; yanında bir CodeAuditAgent raporunda göreceğiniz CWE kimliği de var.
1. Bozuk erişim kontrolü (CWE-639, CWE-862)
Açık ara en sık karşılaşılan ciddi bulgu: bir endpoint, kaydı ID ile yüklüyor ama kaydın çağıran kullanıcıya ait olup olmadığını kontrol etmiyor. Kimlik doğrulama birinin kim olduğunu söyler; yetkilendirme ise her bir sorguda ayrıca yapılmalıdır.
// Scope every lookup to the owner
const invoice = await db.invoice.findFirst({
where: { id, userId: session.user.id },
});2. Enjeksiyon (CWE-89, CWE-78)
String birleştirilerek oluşturulan SQL, shell komutları ve şablon ifadeleri hâlâ her yerde; genellikle de birinin performans için elle yazdığı o tek sorguda. Sorguyu parametreli hâle getirin ya da argümanları dizi olarak geçin; kullanıcı girdisini asla string'e eklemeyin.
3. Koda gömülü gizli anahtarlar (CWE-798)
Depoya commit edilmiş API anahtarları, canlı olduğu ortaya çıkan test token'ları, yapılandırma dosyalarındaki özel anahtarlar. Bunları ortam değişkenlerine veya bir secret manager'a taşıyın ve bir kez bile commit edilmiş her şeyi yenileyin: satırı silmek geçmişi silmez.
4. Sunucu taraflı istek sahteciliği (SSRF, CWE-918)
Webhook'lar, bağlantı önizlemeleri veya içe aktarmalar gibi kullanıcının verdiği bir URL'yi çeken her özellik, iç ağınıza veya bulut metadata endpoint'inize yönlendirilebilir. Host'ları izin listesiyle sınırlayın, IP'yi çözümleyip kontrol edin ve özel IP aralıklarını engelleyin.
5. Siteler arası betik çalıştırma (XSS, CWE-79)
Modern framework'ler varsayılan olarak escape uyguladığı için XSS artık kaçış kapılarında saklanıyor: ham HTML prop'ları, markdown render'layıcıları ve href özniteliklerine yerleştirilen URL'ler. HTML'i güvenilir bir kütüphaneyle temizleyin ve javascript: URL'lerini reddedin.
6. Güvensiz deserialization ve eval (CWE-502, CWE-95)
Pickle, YAML load, Java object stream'leri ve dinamik eval veriyi koda dönüştürür. Bunların yerine güvenli yükleyiciler ve şemayla doğrulanmış JSON kullanın.
7. Zayıf kriptografi (CWE-327, CWE-330)
Parolalar için MD5 veya SHA-1, sabit IV'ler, token'lar için Math.random(). Bu iş için tasarlanmış bir parola hash algoritması (Argon2id, bcrypt, scrypt) ve kriptografik olarak güvenli bir rastgelelik kaynağı kullanın.
8. Açık yönlendirmeler (CWE-601)
Her URL'yi kabul eden bir next veya returnTo parametresi, alan adınızı oltalama saldırıları için güvenilir bir fırlatma rampasına çevirir. Yalnızca aynı origin'e ait göreli yolları kabul edin.
9. Eksik rate limiting (CWE-307, CWE-770)
Giriş, parola sıfırlama, OTP ve size para kaybettiren her endpoint (e-posta, SMS, AI çağrıları) kullanıcı başına ve IP başına limit gerektirir. Limit olmadan brute force ve fatura şişirme saldırıları çocuk oyuncağıdır.
10. Güvenlik yapılandırma hataları (CWE-16)
Kimlik bilgileriyle birlikte wildcard CORS, production'da debug modu, ayrıntılı stack trace'ler, fazla serbest bucket politikaları. Bunlar yapılandırmada yaşadıkları için kod incelemesinde nadiren hata gibi görünür; tam da bu yüzden kod gibi incelenmeleri gerekir.
Bu liste nasıl kullanılır
- 1-3 arasındaki sınıfları her pull request'te kontrol edin; etkisi en yüksek ve gözden kaçması en kolay olanlar bunlardır.
- Altyapı ve CI yapılandırmasını incelenen kod olarak ele alın.
- Düzeltmelerin takip edilebilmesi ve eğilimlerin ölçülebilmesi için her bulguya CWE kimliğini kaydedin.