Güvenli Yazılım · Kontrol Listesi
Web ve Mobil Ürünler İçin Güvenli Yazılım Kontrol Listesi
Yeni bir ürün geliştirirken veya mevcut sistemi iyileştirirken kimlik doğrulamadan dağıtıma kadar gözden geçirilmesi gereken temel güvenlik kontrolleri.
1 dk okuma
Tehdit modelini ve veri sınırlarını tanımlayın
Hangi verinin işlendiğini, nerede saklandığını, hangi servisler arasında taşındığını ve kimlerin erişebildiğini belgeleyin. İnternet erişimli bileşenleri, yönetim yüzeylerini ve üçüncü taraf entegrasyonlarını ayrı saldırı yüzeyleri olarak değerlendirin.
Riskli işlemler için kötüye kullanım senaryoları yazın. Parola sıfırlama, ödeme, dosya yükleme, davet ve yetki değişikliği gibi akışlarda yalnız mutlu yolu test etmeyin.
Kimlik doğrulama ve oturum güvenliği
Parolaları güçlü bir adaptif hash ile saklayın, çok faktörlü kimlik doğrulamayı destekleyin ve hesap kurtarma akışlarını en az giriş kadar sıkı koruyun. Oturum kimliklerini URL'ye koymayın; güvenli, HttpOnly ve uygun SameSite cookie ayarları kullanın.
Yetkilendirmeyi yalnız arayüzde değil her sunucu isteğinde uygulayın. Kullanıcıdan gelen nesne kimliklerini sahiplik ve rol kontrolünden geçirmeden işleme almayın.
Girdi, çıktı ve dosya işlemleri
Girdileri bağlama göre doğrulayın; SQL, HTML, komut satırı ve dosya yolu gibi hedeflerde uygun parametreli API'leri kullanın. Çıktı kodlamasını şablon motorunun varsayılanlarına bırakmadan bağlama göre doğrulayın.
Dosya yüklemelerinde uzantı yerine gerçek içerik türünü, boyutu ve depolama konumunu kontrol edin. Kullanıcı dosyalarını uygulama kodundan ve doğrudan çalıştırılabilir dizinlerden ayırın.
Secret, log ve hata yönetimi
API anahtarlarını ve parolaları kaynak kod, imaj veya istemci paketine koymayın. Kapsamı dar kimlik bilgileri, merkezi secret yönetimi ve düzenli rotasyon kullanın.
Loglarda parola, token ve kişisel veriyi maskeleyin. Kullanıcıya iç sistem ayrıntısı göstermeyen hata mesajları döndürürken olay korelasyonu için benzersiz hata kimliği üretin.
Bağımlılık, test ve dağıtım
Bağımlılıkları kilitleyin, otomatik güvenlik taraması çalıştırın ve kritik güncellemeler için sahiplik belirleyin. Kod incelemesi, statik analiz, birim testleri ve yetkilendirme testlerini CI aşamasına ekleyin.
Üretim ortamında debug modunu kapatın, güvenlik başlıklarını uygulayın, yedek ve geri dönüş prosedürünü test edin. Yayın sonrasında izleme, alarm ve düzeltme doğrulaması olmadan güvenlik süreci tamamlanmış sayılmaz.