Güvenli Geliştirici Rehberleri
"Önce çalışan kod" yerine "Hem çalışan hem yıkılamayan kod" doktrini. Platform bazlı güvenlik standartları.
Masaüstü (Desktop) Uygulama Güvenliği (.exe, .app)
Windows veya macOS ortamları için derlenen bir yazılımın sömürülmesini engellemek için kodlama sürecinde izlenmesi gereken yollar:
- ASLR ve DEP Desteği: Hafıza taşması (Buffer Overflow) saldırılarını imkansızlaştırmak için yazılımcılar derleme (Compile) sürecinde ASLR (Address Space Layout Randomization) ve DEP bayraklarını zorunlu aktif etmelidir.
- Code Signing (Dijital İmzalama): Uygulamanızın .exe dosyasını (Authenticode) geçerli bir SSL Sertifika Otoritesi (CA) üzerinden imzalayın. Bu sayede uygulamanız zararlı olarak (SmartScreen) flaglenmez ve üzerinde sonradan değişiklik yapılamaz.
- Hardcoded Credential Hatası: Veritabanı bağlantı metinlerini, API anahtarlarını PDB, EXE, DLL veya Config dosyalarına "Açık Metin (Plain Text)" olarak GÖMMEYİN. Reverse Engineering araçlarıyla rahatlıkla okunabilir.
Mobil Uygulama Güvenliği (.ipa, .apk)
Mobil mimari (iOS/Android), zafiyetlerin doğrudan son kullanıcı cebinde patladığı yerdir.
- Root/Jailbreak Tespiti: Finansal (FinTech) veya hassas veri tutan mobil uygulamalar boot anında cihazın Rootlu olup olmadığını kontrol edip hizmeti sonlandırmalıdır. Risk faktörü bu cihazlarda %100'dür.
- Certificate Pinning: Uygulamanız ile sunucunuz arasındaki iletişime aracı girmemesi (Man In The Middle) için normal SSL sertikası yetmez. Sertifikanın public key'ini uygulama içerisine "Pin'leyin".
- Local Storage (Yerel Depolama): Token ve oturum bilgileri "SharedPreferences" içinde düz metin tutulmamalı, Android Keystore System veya iOS tarafında Keychain Services kullanılarak donanımsal düzeyde şifrelenmelidir.
Web Uygulama & Ortam Güvenliği
SaaS veya portal platformlarının temel defans hattı.
- OWASP Top 10 Odaklı Geliştirme: XSS'i önlemek için tüm kullanıcı girdilerini (input) "Encoder" sınıfından geçirin; SQLi için mutlaka "Prepared Statements (ORM)" kullanın; ve dosya yükleme (File Upload) ekranlarında byte header kontrolü yapın. Sadece uzantıya güvenmeyin.
- DevSecOps Pipeline: Kodu GitHub veya GitLab'a gönderirken CI/CD hattına mutlaka "SAST" (Statik Kod Analiz) araçları ekleyin. SonarQube gibi toollardan yeşil ışık almayan kod asla "Production"a çıkmamalıdır.