0%
Güvensiz bir web uygulaması; veri ihlali, yasal ceza ve itibar kaybı demektir. OWASP Top 10 temelli bu rehberde kimlik doğrulama, yetkilendirme, injection, API güvenliği ve KVKK yükümlülüklerini işletme diliyle ele alıyoruz.

Bir web uygulaması veya SaaS ürünü geliştiriyorsunuz ya da mevcut sisteminizin ne kadar güvenli olduğunu sorguluyorsunuz. Güvenlik, çoğu zaman 'sonradan hallederiz' listesine girer — ta ki bir ihlal yaşanana dek. Gerçekte güvenlik açıkları; müşteri verilerinin çalınması, KVKK kapsamında idari para cezası ve kamuoyunda itibar kaybı anlamına gelir. Bu yazı teknik ekibinize bir kontrol listesi, size ise 'nelerin sorulması gerektiği' konusunda bir çerçeve sunuyor.
OWASP (Open Web Application Security Project), web uygulama güvenlik risklerini her birkaç yılda bir güncelliyor. 2021 baskısında 'Broken Access Control' ilk sıraya oturdu — yani çoğu sistemdeki en kritik açık, kullanıcıların yetkisiz verilere erişebildiği senaryolardır. Bu ne anlama geliyor? Sizin sisteminizde, bir kullanıcı URL'yi değiştirerek başka bir müşterinin siparişlerini veya faturalarını görebiliyor olabilir. Bu, teknik bir hata değil, tasarım kökenli bir güvenlik açığıdır.
Türkiye'de KVKK (6698 sayılı Kişisel Verilerin Korunması Kanunu) kapsamında kişisel veri ihlallerinde Kişisel Verileri Koruma Kurumu'na bildirim yükümlülüğü ve idari yaptırım riski bulunmaktadır. Avrupa'da iş yapan veya AB vatandaşlarının verilerini işleyen işletmeler için GDPR ek bir katman ekler. Güvenlik bir maliyet kalemi değil, yasal bir zorunluluktur.
OWASP Top 10 2021 listesi şu kategorilerden oluşuyor: A01 Broken Access Control, A02 Cryptographic Failures, A03 Injection, A04 Insecure Design, A05 Security Misconfiguration, A06 Vulnerable and Outdated Components, A07 Identification and Authentication Failures, A08 Software and Data Integrity Failures, A09 Security Logging and Monitoring Failures, A10 Server-Side Request Forgery (SSRF). Bu yazıda iş etkisi en yüksek başlıkları pratik önlemlerle ele alıyoruz.
Kimlik doğrulama 'kim olduğunuzu kanıtlamak', yetkilendirme ise 'ne yapabileceğinizi belirlemek' demektir. Pek çok uygulamada kimlik doğrulama güçlü olsa da yetkilendirme kontrolleri eksiktir. Tipik örnek: bir admin panelinin URL'si bilindiğinde, sıradan kullanıcı olarak da açılabilmesi. Önlem: her işlem öncesinde sunucu tarafında (server-side) yetki kontrolü yapılmalı; yetkilendirme kararı asla yalnızca istemci (client-side) tarafına bırakılmamalıdır. Uygulamada en sık karşılaşılan yöntem RBAC (Role-Based Access Control) — her rolün yalnızca ihtiyaç duyduğu kaynaklara eriştiği 'least privilege' prensibidir.
Güvenli kimlik doğrulama için şu pratikler temeldir:
SQL Injection, saldırganın kullanıcı girdisi üzerinden veritabanı komutları çalıştırdığı bir açıktır. Önlem basit ama uygulanması disiplin ister: parametrik sorgular (prepared statements) ve ORM kullanımı. Örnek — güvensiz:
SELECT * FROM users WHERE email = '" + userInput + "' — bu yapı, girdi olarak ' OR '1'='1 girildiğinde tüm kayıtları döndürür. Güvenli alternatif: parametrik sorgu ile WHERE email = $1 ve değeri ayrı geçmek.
XSS (Cross-Site Scripting), saldırganın zararlı JavaScript kodunu uygulamanıza enjekte ederek diğer kullanıcıların tarayıcısında çalıştırmasıdır. Önlem: kullanıcıdan gelen her veriyi HTML çıktısına yazmadan önce encode edin (HTML escaping); içerik politikası için Content Security Policy (CSP) header'ı yapılandırın; React, Vue gibi modern frameworklerin otomatik escaping özelliğini devre dışı bırakmayın (dangerouslySetInnerHTML gibi kaçınılması gereken API'ler).
XSS'in özellikle tehlikeli olduğu senaryo, çalınan session cookie'leri üzerinden hesap ele geçirmedir (session hijacking). Bir saldırgan, XSS açığı sayesinde kullanıcının oturumunu çalabilir ve o kullanıcı gibi işlem yapabilir. Bu nedenle httpOnly cookie kullanımı hem XSS hem de oturum güvenliği için çakışan kritik bir önlem olarak öne çıkar.
Günümüz uygulamalarının omurgası API'lerdir; dolayısıyla API güvenliği uygulama güvenliğinin merkezindedir. Temel önlemler:
İki temel şifreleme katmanı vardır. Transit (aktarım sırasında): tüm bağlantılar TLS 1.2 veya üzeri ile şifrelenmelidir; TLS 1.0 ve 1.1 güvenli değildir. HTTP'den HTTPS'e zorunlu yönlendirme ve HSTS (HTTP Strict Transport Security) header'ı ile sertifika bypass saldırılarına karşı ek koruma sağlanır. Rest (durağan halde): veritabanında hassas veriler (parola hash'leri, TC kimlik numaraları, ödeme bilgileri) şifreli tutulmalıdır. Tam disk veya sütun düzeyinde şifreleme uygulamaları platform seçimine göre değişir (PostgreSQL pgcrypto, AWS RDS encryption, vb.).
Modern bir web uygulaması yüzlerce açık kaynak kütüphaneye bağımlıdır. Bu kütüphanelerden biri ele geçirilirse, sizi de etkiler. 2020'deki SolarWinds saldırısı ve 2021'deki Log4Shell açığı supply-chain riskinin ne denli ciddi olduğunu gösterdi. Pratik önlemler:
En sık karşılaşılan güvenlik ihlallerinden biri, GitHub'a yüklenen kaynak kodun içinde kalan veritabanı parolası veya üçüncü taraf API anahtarıdır. Doğru yöntem: tüm hassas değerler environment variable'lara taşınmalı ve kaynak kontrolüne girmemelidir. Üretim ortamı için AWS Secrets Manager, HashiCorp Vault, Azure Key Vault veya benzeri bir secrets management servisi kullanılmalıdır. .env dosyaları .gitignore'a eklenmeli; .env.example dosyasında yalnızca anahtar adları (değer olmadan) yer almalıdır. Bu kuralı ekip genelinde uygulayabilmek için pre-commit hook veya git-secrets gibi araçlar işe yarar.
Secrets yönetimindeki disiplin eksikliği, dünya genelinde defalarca büyük veri ihlalinin kaynağı olmuştur. GitHub’ın kendi istatistiklerine göre her yıl milyonlarca secret, kaynak koduna gömülü halde halka açık depolara düşmektedir. Doğru yaklaşım: tüm hassas değerler ortam değişkenlerine (environment variables) taşınmalı, asla versiyon kontrolüne girmemeli; üretim ortamlarında AWS Secrets Manager, HashiCorp Vault veya Azure Key Vault gibi özel bir secret yönetim servisi kullanılmalıdır. .env dosyaları .gitignore içine alınmalı, ekip genelinde pre-commit hook veya git-secrets gibi araçlarla bu kural zorunlu kılınmalıdır.
Güvenlik, sprint bitiminde 'güvenlik testi' başlığıyla değil, her aşamaya entegre edilerek sağlanır. NIST Secure Software Development Framework (SSDF) ve OWASP SAMM bu konuda referans çerçevelerdir. Pratik uygulama:
Secure SDLC yaklaşımının somut kazanımı şudur: yayına almadan önce bulunan bir açığı kapatmak, yayına aldıktan sonra bulunana kıyasla genellikle çok daha az zaman ve kaynak gerektirir. IBM'in 'Cost of a Data Breach' raporları, erken aşama tespitinin ihlal başına maliyeti önemli ölçüde azalttığını her yıl tutarlı biçimde göstermektedir. Bu nedenle güvenlik testini son kilometre sorunu olmaktan çıkarıp geliştirme sürecinin her halkasına yaymak, hem ticari hem de teknik açıdan doğru karardır.
KVKK'nın 12. maddesi, veri sorumlusuna kişisel verilerin güvenliğini sağlamaya yönelik teknik ve idari tedbirleri alma yükümlülüğü getirir. Bu, yalnızca hukuk departmanının meselesi değil, teknik ekibin günlük çalışmasının parçasıdır. Uygulama düzeyinde şu pratikler KVKK/GDPR uyumunu destekler:
Güvenli bir web uygulaması inşa etmek, doğru altyapı seçimi ve disiplinli bir geliştirme sürecinin ürünüdür. ADWEBX, büyüyen işletmeler ve kurumsal müşteriler için web uygulaması ve SaaS geliştirirken güvenliği sprint'ten sprint'e taşınan bir madde değil, mimarinin başından itibaren bir parçası olarak ele alır: tehdit modelleme, güvenli kimlik doğrulama yapıları, OWASP kontrol listeleri ve bağımlılık yönetimi dahil.
Mevcut uygulamanızın güvenlik durumu hakkında ön değerlendirme almak için /analiz sayfamızı ziyaret edin veya WhatsApp üzerinden ekibimizle iletişime geçin.
OWASP (Open Web Application Security Project) tarafından yayımlanan Top 10 listesi, web uygulamalarındaki en kritik güvenlik risklerini kategorize eder. 2021 baskısı en güncel sürümdür. Liste, sektörde evrensel referans kabul edilir; penetrasyon testleri, güvenlik denetimleri ve geliştirme standartları bu listeye göre şekillenir. Herhangi bir güvenlik yatırımına nereden başlanacağını bilmek isteyen işletmeler için temel başlangıç noktasıdır.
İki temel yaklaşım vardır: (1) Otomatik tarama — OWASP ZAP veya Burp Suite Community Edition gibi araçlarla çalışan uygulamanızı dışarıdan tarayabilirsiniz. Bu, bilinen zafiyetleri hızlı tespit eder. (2) Penetrasyon testi (pentest) — bağımsız güvenlik uzmanları uygulamanızı kontrollü saldırı senaryolarıyla test eder; bu yöntem çok daha kapsamlı bulgular sağlar. Finansal veri veya kişisel veri işleyen uygulamalar için yılda en az bir kez pentest önerilir.
Her ikisi de doğru uygulandığında güvenli olabilir; tercih uygulama mimarisine göre şekillenir. JWT, stateless ve dağıtık mimariler (mikro-servisler, mobil-backend) için uygundur; ancak token'ın iptal edilmesi (revocation) ek bir mekanizma gerektirir. Session cookie ise sunucu tarafında saklandığı için anında geçersiz kılınabilir; monolitik uygulamalarda daha basit bir seçenektir. Her iki durumda da token veya session ID httpOnly ve Secure flag ile işaretlenmiş cookie'de saklanmalıdır.
KVKK'nın 18. maddesi kapsamında idari para cezaları uygulanabilir. Kanunun 12. maddesindeki veri güvenliği yükümlülüklerini yerine getirmeyenlere Kişisel Verileri Koruma Kurulu tarafından idari para cezası uygulanabilmektedir; kurul kararları KVK Bülteni üzerinden kamuoyuyla paylaşılmaktadır. Ceza tutarları ihlal türü, kapsam ve kurulun takdir yetkisine göre belirlenir. Ancak asıl risk yalnızca para cezası değil — müşteri güveni ve itibar kaybıdır.
Bu yaklaşım 'DevSecOps' veya 'Shift-Left Security' olarak adlandırılır: güvenlik kontrollerini geliştirme döngüsünün mümkün olan en erken aşamasına taşımak. Pratik başlangıç adımları: kod incelemesinde (code review) güvenlik kontrol listesi kullanmak, CI/CD pipeline'a bağımlılık tarama (npm audit, Snyk) eklemek, geliştirici ekibe temel güvenlik eğitimi vermek. Bu önlemler, yayına alma sonrası bulunan açıkların onarım maliyetini önemli ölçüde düşürür — IBM'in 'Cost of a Data Breach' araştırması erken aşama tespitinin maliyeti önemli ölçüde azalttığını her yıl teyit etmektedir.
Güvenlik pratiklerini öğrenmek değerlidir; ancak bunları uygulamak sıfırdan inşa edilen web uygulamaları için kritik önem taşır.
Güvenlik odaklı web uygulama geliştirme hizmetimize göz atın.Bir web projesinin size ne kadara mal olacağını önceden bilmek ister misiniz?
Ücretsiz Web Sitesi Maliyet Hesaplayıcı ile bütçenizi anında tahmin edinSSS
OWASP Top 10 listesi sektörün en yaygın kabul gören referansıdır ve başlıca açıklar şunlardır: enjeksiyon saldırıları (SQL, komut), bozuk kimlik doğrulama ve oturum yönetimi, hassas veri ifşası, yetersiz erişim kontrolü ve güvenlik yanlış yapılandırması. Bunların büyük bölümü iyi yazılmış kod ve doğru yapılandırma ile önlenebilir; sıfır-gün açıkları gerçek tehditlerin yalnızca küçük bir bölümünü oluşturur.
HTTPS artık yalnızca e-ticaret veya hassas veri işleyen siteler için değil, tüm web siteleri için zorunlu bir standart olarak kabul edilmektedir. Google, HTTPS olmayan siteleri 'Güvenli değil' olarak işaretler ve bu hem güven kaybına hem de sıralama dezavantajına yol açar. HTTP üzerinden iletilen her veri (formlar, oturum tokenleri dahil) kolaylıkla dinlenebilir. SSL/TLS sertifikası kurulumu artık teknik açıdan oldukça basit ve çoğu hosting sağlayıcısında ücretsizdir.
Güvenlik bütçesi uygulamanın kritikliğine, işlenen veri türüne ve mevcut risk profiline göre değişir; dolayısıyla herkese uyan tek bir rakam yoktur. Bununla birlikte küçük ve orta ölçekli işletmeler için minimum düzeyde şunlar karşılanmalıdır: güncel yazılım ve bağımlılıklar, düzenli yedekleme ve doğrulanmış kurtarma, güçlü parola politikası ve iki faktörlü kimlik doğrulama, web uygulama güvenlik duvarı (WAF). Bu temel önlemler büyük maliyetler gerektirmeden riskin önemli bir bölümünü azaltır.
Güvenlik testi tek seferlik bir aktivite değildir. Kapsamlı bir sızma testi yılda en az bir kez veya büyük bir özellik yayını sonrasında yapılmalıdır. Otomatik güvenlik açığı taraması ise mümkünse CI/CD pipeline'ına entegre edilerek her dağıtımda çalıştırılmalıdır. Bağımlılıkların bilinen açıklara karşı sürekli izlenmesi (npm audit, Dependabot benzeri araçlar) ise süregelen bir kontrol olarak kurulmalıdır. Kod ne kadar sık değişiyorsa güvenlik doğrulaması da o sıklıkta gerçekleştirilmelidir.
İlgili Hizmetler
Bu konuda profesyonel destek alın:
Ücretsiz ön analiz görüşmesiyle başlayın.