KATEGORİLER
BILGISAYAR & DONANIM
TEKNOLOJI
DİĞER
CYBER SECURITY CYBER TROJEN DEVELOPER NETWORK SECURITY / TELEKOMÜNIKASYON
OFFLINE ADMİN — bağlantı bekliyor
CANLI ZİYARETÇİ
0 aktif ziyaretçi
--
☀️
--°
--
💧 -- 💨 -- 🌅 --
--☀️--°--°
--☀️--°--°
--☀️--°--°
--☀️--°--°
--☀️--°--°
Ana Sayfa / DEVELOPER / Secure Coding Principles: How to Writ...
DEVELOPER

Secure Coding Principles: How to Write Vulnerability-Free

GH
nonanik1306@gmail.com 06 August 2026 00:28 Developer
3 dk OKUMA
Secure Coding Principles: How to Write Vulnerability-Free
CONTENTS

Yazılım geliştirme dünyasında, bir uygulamanın "çalışıyor" olması, onun "güvenli" olduğu anlamına gelmez. Siber saldırganlar, yazılımların çalışma mantığındaki en ufak bir zafiyeti (bug) bulup, bunu sistemlere sızmak ve kritik verileri ele geçirmek için kullanırlar. Bu nedenle, günümüzde bir yazılım geliştiricisinin (developer) sahip olması gereken en önemli yetkinlik, sadece kod yazmak değil, "Güvenli Kodlama" (Secure Coding) disiplinini uygulayabilmektir.

Güvenli kodlama, bir yazılımın tasarım aşamasından başlayarak, kodlama, test ve dağıtım (deployment) aşamalarına kadar her adımda güvenlik önlemlerinin alınmasıdır. Bu yazıda, bir siber güvenlik geliştiricisinin mutlaka bilmesi gereken 4 temel güvenli kodlama prensibini detaylandıracağız.

  1. Girdi Doğrulama (Input Validation) ve Veri Temizleme (Sanitization) Bir uygulamanın en zayıf halkası her zaman dış dünyadan gelen verilerdir. Kullanıcıların web formlarına, API uç noktalarına veya URL parametrelerine gönderdiği her veri parçası, potansiyel bir saldırı vektörüdür. Girdi doğrulama, bu verilerin beklenen formatta ve türde olduğundan emin olma işlemidir.

Zafiyet Örneği: Bir kullanıcı adı alanına ' OR '1'='1 gibi bir SQL sorgusu parçası yazılırsa ve sistem bu veriyi doğrudan veritabanı sorgusuna yapıştırırsa, SQL Injection (SQL Sızması) saldırısı gerçekleşir.

Savunma Yöntemi: Backend tarafında gelen veriyi asla güvenilir kabul etmeyin. Mutlaka bir whitelist (beyaz liste) kullanın: Eğer beklenen veri bir e-posta adresi ise, sadece regex ile e-posta formatına uyan verileri kabul edin. Tüm kullanıcı girişlerini, veritabanına göndermeden önce parametreli sorgular (Prepared Statements) ile temizleyin.

  1. En Az Yetki Prensibi (Principle of Least Privilege - PoLP) Bu prensip, yazılım güvenliğinin temel taşlarından biridir. Bir sistemdeki her bir kullanıcı, işlem veya mikroservis, görevini yerine getirmek için ihtiyaç duyduğu en düşük seviyedeki yetkiye sahip olmalıdır. Daha fazla yetki, saldırganların ele geçirdiklerinde daha fazla hasar vermelerine olanak tanır.

Uygulama Örneği: Bir e-ticaret sitesinde, sadece "Siparişleri Görüntüleme" yetkisine sahip olan bir çalışanın, veritabanındaki "Kullanıcı Şifreleri" tablosuna erişim yetkisi olmamalıdır. Yine bir uygulamanın arka plan servisleri (background jobs), sadece kendi işlemleri için gerekli olan belirli tablolara yazma/okuma yapabilmelidir.

Önem: Bir saldırgan sıradan bir kullanıcı hesabını ele geçirdiğinde, eğer yetkiler minimal düzeydeyse, sistemin tamamını ele geçiremeyecek ve hasarı sınırlı kalacaktır.

  1. Güvenli Parola ve Kimlik Doğrulama Yönetimi Kullanıcıların kimliklerini doğrulamak (Authentication), siber güvenlikteki en hassas konulardan biridir. Geliştiricilerin bu aşamada yaptığı en yaygın hata, parolaları veritabanında düz metin (plain text) olarak saklamaktır.

Doğru Yöntem: Kullanıcı parolaları, veritabanına kaydedilmeden önce tek yönlü bir şifreleme algoritması olan bcrypt, Argon2 veya scrypt ile hash'lenmelidir (özetlenmelidir).

Oturum (Session) Güvenliği: Kullanıcı giriş yaptıktan sonra verilen oturum anahtarları (Session ID), rastgele oluşturulmalı ve tahmin edilemez olmalıdır. Ayrıca, oturumların belirli bir süre sonunda (örneğin 30 dakika) otomatik olarak sonlandırılması (timeout) sağlanmalıdır. Modern uygulamalarda Çok Faktörlü Doğrulama (MFA/2FA) kullanımı artık bir lüks değil, zorunluluktur.

  1. Hata Yönetimi ve Loglama (Logging) Yazılım geliştirme sürecinde hatalar kaçınılmazdır. Ancak bu hataların kullanıcıya nasıl gösterildiği, güvenlik açısından büyük önem taşır.

Hassas Bilgi Sızdırma: Eğer uygulamanız bir SQL hatası verdiğinde, kullanıcıya PDOException: SQLSTATE[HY000] gibi veritabanına dair teknik detaylar gösteriyorsanız, saldırganlara sisteminiz hakkında çok değerli bilgiler vermiş olursunuz.

Doğru Yaklaşım: Üretim ortamında (Production) kullanıcılara "Bir hata oluştu, lütfen daha sonra tekrar deneyin" gibi genel bir mesaj gösterin. Tüm teknik hata detaylarını, detaylı bir şekilde sunucu tarafı loglarına (server-side logs) kaydedin. Bu loglar sayesinde, saldırıları tespit edebilir ve güvenlik açıklarını zamanında kapatabilirsiniz.

Güvenli kodlama, bir yazılımın güvenlik duvarı gibidir. Yukarıda bahsettiğimiz 4 prensip (Girdi Doğrulama, En Az Yetki, Güvenli Kimlik Doğrulama ve Loglama) bir araya geldiğinde, yazılımınızı siber saldırılara karşı savunmasız hale getirir. Unutmayın, kodlama yaparken her zaman bir saldırgan gibi düşünün. "Kod çalışıyorsa, güvenlidir" algısını yıkın.

pexels-ann-h-45017-38482453.jpg

Secure #Code #Developer #SecureCode #SeucreDeveloper #AntiDeveloper

Bu yazıdaki bazı bağlantılar affiliate (bağlı kuruluş) bağlantılarıdır; bu bağlantılar üzerinden yapılan alışverişlerde bize komisyon ödenebilir, bu size ek bir maliyet yaratmaz. Detaylar için Gizlilik Politikamız sayfamıza göz atabilirsiniz.

🌍 Okuyan ülkeler: 🇺🇸 1

YORUMLAR (0)

Henüz yorum yapılmamış. İlk yorumu sen yap!
1 E-posta doğrula 2 Kodu gir 3 Yorumu yaz
E-postana gönderilen 6 haneli kodu gir:
✓ E-posta doğrulandı — yorumunu yaz:

Danışma Formu