Güvenli Kodlama Prensipleri

Güvenli kodlama, yazılım geliştirme sürecinde güvenlik açıklarını en baştan önlemek için yapılan uygulamalardır.Amaç, sistem yayınlandıktan sonra ortaya çıkan zafiyetleri düzeltmek yerine, kodu en baştan güvenli şekilde yazmaktır. Aşağıdaki prensipler; web, mobil ve masaüstü uygulamaları geliştiren herkes için geçerlidir.İçindekilerListeyi göstermek için tıklayın1. Girdi Doğrulama (Input Validation)2. SQL Injection’dan Korunma3. Güvenli Kimlik Doğrulama4. Yetkilendirme Kontrolü (Access Control)5.

Google News Google News Flipboard Flipboard Sesli oku Yazıyı beğen Favorilere Ekle 0 Yorumlar
Daha fazla

Güvenli kodlama, yazılım geliştirme sürecinde güvenlik açıklarını en baştan önlemek için yapılan uygulamalardır.
Amaç, sistem yayınlandıktan sonra ortaya çıkan zafiyetleri düzeltmek yerine, kodu en baştan güvenli şekilde yazmaktır.

Aşağıdaki prensipler; web, mobil ve masaüstü uygulamaları geliştiren herkes için geçerlidir.


1. Girdi Doğrulama (Input Validation)

Her gelen veri potansiyel olarak zararlıdır kabul edilmelidir.

Yapılması gerekenler:

  • Sunucu tarafında doğrulama

  • Beyaz liste yaklaşımı (whitelist)

  • Regex kontrolleri

  • Uzunluk sınırları

  • Tür kontrolü (int/string/date)

Yanlış girdi doğrulama → SQLi, XSS, command injection gibi dev açıklar doğurur.


2. SQL Injection’dan Korunma

SQL injection, en sık görülen kritik açık türüdür.

Önleme yöntemleri:

  • Hazırlanmış ifadeler (Prepared Statements)

  • ORM kullanımı

  • Kullanıcı girdisini SQL’e direkt eklememe

  • Sınırlı yetkili DB kullanıcı hesabı


3. Güvenli Kimlik Doğrulama

Kimlik doğrulama uygulamanın en kritik noktalarından biridir.

Kurallar:

  • Parolalar hash + salt ile saklanmalı (Bcrypt, Argon2)

  • MFA/2FA desteği

  • Lockout mekanizması (çok fazla yanlış deneme)

  • Session timeout ayarı

  • JWT süreleri kısa olmalı


4. Yetkilendirme Kontrolü (Access Control)

Kullanıcılar yalnızca kendi haklarına sahip olmalıdır.

Dikkat edilmesi gerekenler:

  • IDOR’dan kaçınma (Object ID doğrulaması)

  • Her istekte rol kontrolü

  • Sunucu tarafında yetki kontrolü (client tarafına güvenilmez)

  • Admin fonksiyonlarını ayırma


5. Güvenli Veri Saklama

Veriler korunmalı, şifrelenmeli ve minimum düzeyde tutulmalıdır.

Öneriler:

  • Hassas verileri şifreleme (AES-256)

  • Gereksiz veri saklamama (data minimization)

  • Config dosyalarına API anahtarı koymama

  • Ortam değişkenleri (ENV) kullanma


6. XSS (Cross-Site Scripting) Önlemleri

Önleme yolları:

  • Output encoding (HTML escape)

  • Content Security Policy (CSP)

  • Güvenli template motorları

  • Input sanitize


7. Hata Yönetimi (Error Handling)

Hata mesajları saldırgana ipucu vermemeli.

  • Kullanıcıya sade hata mesajı göster

  • Detaylı logları yalnızca sunucuda tut

  • Stack trace kullanıcıya gösterilmemeli


8. Güvenli Loglama ve İzleme

Loglar saldırılara ışık tutar.

Kurallar:

  • Parola, token, kredi kartı bilgisi loglama!

  • Logları imzalama veya şifreleme

  • SIEM entegrasyonu (Splunk, ELK)

  • Anormal davranışları tespit etme


9. Üçüncü Taraf Kütüphaneleri Güvenli Kullanma

  • Kullanılmayan paketleri kaldır

  • Bağımlılıkları sürekli güncelle

  • Kaynağı belli olmayan paketleri kullanma

  • Sürüm kontrolü (npm audit, pip audit)


10. Güvenli Kod İncelemesi (Code Review)

Kod yayına çıkmadan önce gözden geçirilmelidir.

  • Peer review

  • Static Application Security Testing (SAST)

  • Dynamic Application Security Testing (DAST)

Sonradan düzeltmek maliyetlidir, baştan güvenli yazmak her zaman daha ucuzdur.

Yazar Hakkında

Benzer Yazılar

Bir Cevap Yaz

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir.

0/30 karakter