web konusuna özel güvenlik illüstrasyonu
WEB GÜVENLİĞİ

Web Uygulama Güvenliği

OWASP Top 10, yaygın saldırılar, güvenli kodlama ve savunma stratejileri. Web uygulamanızı hacklenmekten koruyun.

30 dkOkuma Süresi
8 BölümDetaylı Rehber
%43Saldırı Web'e Yönelik
BÖLÜM 01

Web Güvenliği Nedir?

Web güvenliği, web uygulamalarını, web sitelerini ve web servislerini siber saldırılara karşı koruma pratiğidir. İnternet üzerinden erişilebilir her uygulama potansiyel bir hedeftir.

Web Güvenliği İstatistikleri

Siber saldırıların %43'ü web uygulamalarını hedefliyor (Verizon DBIR 2024). Her gün 30.000 web sitesi hackleniyor. Ortalama web ihlali maliyeti $4.45 milyon. Web uygulamalarındaki açıkların %94'ü uygulama katmanında.

Web Güvenliğinin Kapsamı

Uygulama Güvenliği

Kod seviyesinde güvenlik. SQL injection, XSS, CSRF gibi açıkların kapatılması.

Sunucu Güvenliği

Web sunucusu yapılandırması. Apache, Nginx, IIS hardening.

Veritabanı Güvenliği

SQL injection koruması, veri şifreleme, erişim kontrolleri.

Ağ Güvenliği

Firewall, WAF, DDoS koruması, TLS/SSL yapılandırması.

Kimlik Doğrulama

Güçlü şifreler, MFA, oturum yönetimi, token güvenliği.

Uyumluluk

PCI-DSS, GDPR, KVKK gibi düzenlemelere uyum.

Web Güvenliği vs Ağ Güvenliği

ÖzellikWeb GüvenliğiAğ Güvenliği
OdakUygulama katmanı (Layer 7)Ağ katmanı (Layer 3-4)
HedefWeb siteleri, API'lerSunucular, ağ cihazları
SaldırılarSQLi, XSS, CSRFDDoS, port scanning
SavunmaWAF, güvenli kodlamaFirewall, IDS/IPS
TestDAST, SAST, pentestVulnerability scan

💡 Temel İlke

Web güvenliği katmanlı savunma gerektirir. Tek bir güvenlik önlemi yeterli değildir. Kod, sunucu, ağ ve kullanıcı eğitimi birlikte çalışmalıdır.

BÖLÜM 02

OWASP Top 10 (2024)

OWASP (Open Web Application Security Project), web uygulama güvenliğinin en önemli 10 riskini her 3-4 yılda bir günceller. Bu liste, web güvenliğinin altın standardıdır.

🔴 Neden Önemli?

OWASP Top 10, dünya genelinde güvenlik uzmanları, geliştiriciler ve denetçiler tarafından referans alınır. PCI-DSS gibi düzenlemeler bu listeye uyumu zorunlu kılar.

OWASP Top 10 - 2024 Güncel Liste

#1

Broken Access Control

Kullanıcılar yetkileri dışında işlemler yapabilir. Admin paneline erişim, başkasının verisini görme, IDOR zafiyetleri.

Etki: Yetkisiz veri erişimi, hesap ele geçirme
Yaygınlık: %38.12 test edilen uygulamaların
#2

Cryptographic Failures

Zayıf şifreleme veya şifreleme eksikliği. Hassas veriler açıkta kalır. Eski algoritmalar (MD5, SHA1) kullanımı.

Etki: Veri ifşası, kimlik hırsızlığı
Yaygınlık: %44.31 uygulamaların
#3

Injection

SQL, NoSQL, OS, LDAP injection. Kullanıcı girdisi doğrudan sorguya eklenir. Veritabanı ele geçirilebilir.

Etki: Tam veri kaybı, sistem ele geçirme
Yaygınlık: %19.09 uygulamaların
#4

Insecure Design

Mimari seviyede güvenlik eksikliği. Threat modeling yapılmamış. Güvenlik by design değil, afterthought.

Etki: Temel tasarım hataları
Yaygınlık: Yeni kategori (2021)
#5

Security Misconfiguration

Yanlış yapılandırma. Varsayılan şifreler, gereksiz servisler, detaylı hata mesajları, açık portlar.

Etki: Kolay sömürülebilir açıklar
Yaygınlık: %90.19 uygulamaların
#6

Vulnerable and Outdated Components

Güncel olmayan kütüphaneler, framework'ler. Bilinen açıklar sömürülür. Dependency yönetimi zayıf.

Etki: Bilinen zafiyetlerin kullanımı
Yaygınlık: %93.79 uygulamaların
#7

Identification and Authentication Failures

Zayıf kimlik doğrulama. Kırılabilir şifreler, oturum yönetimi hataları, credential stuffing.

Etki: Hesap ele geçirme
Yaygınlık: %15.19 uygulamaların
#8

Software and Data Integrity Failures

Güvenilmeyen kaynaklardan kod/veri kabul etme. CI/CD pipeline güvenliği. Otomatik güncelleme riskleri.

Etki: Kötü amaçlı kod enjeksiyonu
Yaygınlık: Yeni kategori (2021)
#9

Security Logging and Monitoring Failures

Yetersiz loglama, izleme eksikliği. Saldırılar tespit edilemez. Adli analiz yapılamaz.

Etki: Geç tespit, kanıt kaybı
Yaygınlık: %65.08 uygulamaların
#10

Server-Side Request Forgery (SSRF)

Sunucunun kötü niyetli URL'leri istemesi. İç ağ keşfi, bulut meta veri çalma.

Etki: İç ağ erişimi, veri çalma
Yaygınlık: %4.51 uygulamaların

Mini Quiz: OWASP Top 10

Soru 1/3

OWASP Top 10'da en yaygın bulunan risk hangisidir?

BÖLÜM 03

Yaygın Web Saldırıları

Web uygulamalarına yönelik en yaygın saldırı türlerini detaylı olarak inceleyelim. Her saldırının nasıl çalıştığını ve nasıl önleneceğini öğrenin.

SQL Injection (SQLi)

SQL Injection

KRİTİK

Kullanıcı girdisinin SQL sorgusuna doğrudan eklenmesi. Saldırgan veritabanını okuyabilir, değiştirebilir veya silebilir.

KÖTÜ KOD:
$query = "SELECT * FROM users WHERE id = " . $_GET['id'];
// Saldırgan: ?id=1 OR 1=1 --
İYİ KOD:
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$_GET['id']]);
Savunma: Prepared statements, ORM kullanımı, input validation, WAF

Cross-Site Scripting (XSS)

Cross-Site Scripting (XSS)

KRİTİK

Web sayfasına kötü niyetli JavaScript kodu enjekte edilir. Kullanıcının oturumu çalınabilir, tarayıcısı kontrol edilebilir.

Stored XSS: Kötü kod veritabanına kaydedilir, her kullanıcıda çalışır
Reflected XSS: Kötü kod URL'den gelir, anında çalışır
DOM-based XSS: Client-side JavaScript manipülasyonu
KÖTÜ KOD:
echo "Merhaba " . $_GET['name'];
// Saldırgan: ?name=<script>alert('XSS')</script>
İYİ KOD:
echo "Merhaba " . htmlspecialchars($_GET['name'], ENT_QUOTES);
Savunma: Output encoding, Content Security Policy (CSP), input validation

Cross-Site Request Forgery (CSRF)

CSRF

YÜKSEK

Kullanıcı habersizken kötü niyetli istekler gönderilir. Kullanıcı giriş yapmışken sahte form submit edilir.

Saldırı Örneği: <img src="http://bank.com/transfer?to=attacker&amount=1000">
Savunma: CSRF tokens, SameSite cookies, referer checking

Diğer Önemli Saldırılar

File Inclusion

LFI/RFI: Sunucuya dosya okutma veya çalıştırma.

Savunma: Whitelist, input validation

File Upload

Zararlı dosya yükleme. Web shell enjeksiyonu.

Savunma: Dosya tipi kontrolü, sandbox

SSRF

Sunucunun iç ağa istek yapması. Bulut meta veri çalma.

Savunma: URL whitelist, ağ segmentasyonu

IDOR

Yetkisiz nesne referansı. Başkasının verisine erişim.

Savunma: Yetki kontrolü, access control

⚠️ Kritik Uyarı

Web saldırılarının %80'i bilinen zafiyetlerden kaynaklanır. Düzenli güvenlik testleri ve yama yönetimi ile büyük çoğunluğu önlenebilir.

BÖLÜM 04

Güvenli Kodlama Pratikleri

Güvenli kodlama, web uygulamanızın temelini oluşturur. OWASP Secure Coding Practices rehberi, en iyi uygulamaları belirler.

Güvenli Kodlamanın 10 Altın Kuralı

01

Input Validation

Tüm kullanıcı girdilerini doğrulayın. Whitelist yaklaşımı kullanın. Sadece beklenen formatı kabul edin.

02

Output Encoding

Çıktıları encode edin. HTML, JavaScript, SQL, URL context'ine göre uygun encoding kullanın.

03

Parameterized Queries

SQL sorgularında prepared statements kullanın. Asla string concatenation yapmayın.

04

Authentication

Güçlü şifre politikası, MFA, oturum yönetimi. Şifreleri bcrypt/argon2 ile hash'leyin.

05

Authorization

Least privilege principle. Her işlemde yetki kontrolü yapın. IDOR zafiyetlerine dikkat.

06

Error Handling

Detaylı hata mesajlarını kullanıcıya göstermeyin. Loglara yazın. Stack trace gizleyin.

07

Logging

Önemli olayları loglayın. Logları koruyun. Anomali tespiti için kullanın.

08

Data Protection

Hassas verileri şifreleyin. Hem transit (TLS) hem rest (AES-256) şifreleme uygulayın.

09

Dependency Management

Üçüncü parti kütüphaneleri güncel tutun. Bilinen zafiyetleri takip edin (Snyk, Dependabot).

10

Security Testing

SAST, DAST, pentest ile düzenli test yapın. CI/CD pipeline'a güvenlik kontrolleri ekleyin.

Güvenli Kodlama Örnekleri

GÜVENSİZ

SQL Injection Açığı

// KÖTÜ: String birleştirme
$query = "SELECT * FROM users 
WHERE username = '" . $username . "'";
$result = mysqli_query($conn, $query);
SQL Injection'a açık
GÜVENLİ

Prepared Statement

// İYİ: Prepared statement
$stmt = $pdo->prepare(
"SELECT * FROM users WHERE username = ?");
$stmt->execute([$username]);
$user = $stmt->fetch();
Güvenli
GÜVENSİZ

XSS Açığı

// KÖTÜ: Direkt output
echo "Merhaba " . $_GET['name'];
// Saldırgan: ?name=<script>...</script>
XSS'e açık
GÜVENLİ

Output Encoding

// İYİ: Encoding
$name = htmlspecialchars(
$_GET['name'], ENT_QUOTES, 'UTF-8');
echo "Merhaba " . $name;
Güvenli

✅ En İyi Uygulama

Güvenli kodlama sadece başlangıçtır. Düzenli güvenlik testleri (SAST, DAST, penetration testing) ile açıkları tespit edin.

BÖLÜM 05

HTTP Güvenlik Başlıkları

HTTP güvenlik başlıkları, tarayıcıya uygulamanın güvenlik politikalarını bildirir. Basit ama etkili bir savunma katmanıdır.

Zorunlu Güvenlik Başlıkları

Content-Security-Policy
XSS ve code injection saldırılarını önler. Kaynakları kısıtlar.
default-src 'self'; script-src 'self'
Strict-Transport-Security
HSTS. Tarayıcıları HTTPS kullanmaya zorlar. SSL stripping saldırısını önler.
max-age=31536000; includeSubDomains
X-Frame-Options
Clickjacking saldırılarını önler. iframe kullanımını kısıtlar.
DENY veya SAMEORIGIN
X-Content-Type-Options
MIME type sniffing'i engeller. Nosniff değeri kullanın.
nosniff
Referrer-Policy
Referer bilgisini kontrol eder. Gizli URL'leri korur.
strict-origin-when-cross-origin
Permissions-Policy
Tarayıcı özelliklerini kısıtlar. Kamera, mikrofon, konum.
camera=(), microphone=()

Güvenlik Başlığı Test Araçları

SecurityHeaders.com

Ücretsiz web sitesi güvenlik başlığı tarayıcısı. A-F notu verir.

Mozilla Observatory

Mozilla'nın güvenlik test aracı. Detaylı rapor ve öneriler.

SSL Labs

Qualys SSL Server Test. TLS yapılandırması ve sertifika analizi.

⚠️ Önemli Not

Güvenlik başlıkları tek başına yeterli değildir. Güvenli kodlama ile birlikte kullanılmalıdır. CSP yanlış yapılandırılırsa siteyi bozabilir.

BÖLÜM 06

Web Uygulama Güvenlik Testi

Güvenlik testleri, açıkları canlıya çıkmadan önce tespit eder. Farklı test türleri farklı aşamalarda uygulanır.

Test Türleri

SAST (Static Analysis)

Kaynak kodunu statik olarak analiz eder. Kod yazarken açıkları bulur. CI/CD pipeline'a entegre edilir.

Araçlar: SonarQube, Semgrep, Checkmarx, Fortify
Zamanlama: Her commit'te

DAST (Dynamic Analysis)

Çalışan uygulamayı test eder. Gerçek saldırı simülasyonu yapar. Black-box testing.

Araçlar: OWASP ZAP, Burp Suite, Nikto
Zamanlama: Her deployment öncesi

SCA (Software Composition Analysis)

Üçüncü parti kütüphanelerdeki bilinen zafiyetleri tarar. Dependency checking.

Araçlar: Snyk, Dependabot, WhiteSource
Zamanlama: Her build'de

Penetration Testing

Uzmanlar tarafından manuel test. En kapsamlı değerlendirme. Gerçek saldırgan perspektifi.

Frekans: Yılda en az 1 kez + önemli değişikliklerde
Zamanlama: Yıllık + major release öncesi

Güvenlik Testi Süreci

1

Planlama

Test kapsamını belirle. Hangi uygulamalar, hangi zafiyetler?

2

Keşif (Reconnaissance)

Hedef site hakkında bilgi topla. Teknoloji stack, açık portlar, servisler.

3

Tarama (Scanning)

Otomatik araçlarla açıkları tara. Nessus, OpenVAS, Nikto kullan.

4

Sömürü (Exploitation)

Tespit edilen açıkları sömürmeyi dene. Gerçek saldırı simülasyonu.

5

Raporlama (Reporting)

Bulguları dokümante et. Risk seviyeleri, öneriler, düzeltme adımları.

6

Düzeltme (Remediation)

Açıkları kapat. Tekrar test et. Sürekli iyileştirme döngüsü.

Otomatik Güvenlik Taraması

Günlük

Dependency scan, SAST taraması, log analizi

Haftalık

DAST taraması, vulnerability scan, güncelleme kontrolü

Aylık

Kapsamlı DAST, penetration test, güvenlik audit

Yıllık

Üçüncü parti pentest, compliance audit, güvenlik stratejisi gözden geçirme

✅ DevSecOps Yaklaşımı

Güvenliği CI/CD pipeline'a entegre edin. "Shift-left" güvenlik: açıkları geliştirme aşamasında yakalayın.

BÖLÜM 07

WAF ve Koruma Araçları

Web Application Firewall (WAF), web uygulamanızı kötü niyetli trafikten korur. Güvenlik araçları ile savunmanızı güçlendirin.

WAF Nedir?

HTTP Trafik Filtreleme

Gelen istekleri analiz eder, kötü niyetli olanları bloklar.

Saldırı Tespiti

SQL injection, XSS, CSRF gibi saldırıları otomatik tespit eder.

Rate Limiting

DDoS saldırılarına karşı istek sayısını sınırlar.

Loglama ve Raporlama

Tüm trafiği loglar, güvenlik raporları oluşturur.

WAF Türleri

AĞ SEVİYESİ

Network-based WAF

Donanım tabanlı. Yüksek performans. Pahalı. Kurumsal için.

Yüksek performans Pahalı
SUNUCU SEVİYESİ

Host-based WAF

Sunucuya entegre. ModSecurity gibi. Esnek yapılandırma.

Esnek Bakım gerektirir
BULUT SEVİYESİ

Cloud-based WAF

Cloudflare, AWS WAF. Kolay kurulum, ölçeklenebilir.

Kolay Ölçeklenebilir

Önerilen Güvenlik Araçları

Cloudflare

CDN + WAF + DDoS koruması. Ücretsiz plan mevcut.

WAFDDoSCDN

OWASP ZAP

Açık kaynak web uygulama güvenlik tarayıcı. Ücretsiz.

DASTProxyScanner

Nikto

Web sunucu güvenlik tarayıcı. Bilinen açıkları test eder.

ScannerCLIÜcretsiz

Semgrep

Statik kod analizi. Güvenlik açıklarını kodda tespit eder.

SASTCI/CDÜcretsiz

Let's Encrypt

Ücretsiz SSL/TLS sertifikası. HTTPS zorunluluğu için.

SSLOtomatikÜcretsiz

Fail2Ban

Brute force koruması. Şüpheli IP'leri otomatik banlar.

Brute ForceOtomatikÜcretsiz

ℹ️ WAF Sınırlamaları

WAF tek başına yeterli değildir. Güvenli kodlama ile birlikte kullanılmalıdır. WAF, bilinen saldırı pattern'lerini bloklar ama zero-day açıklara karşı korumaz.

BÖLÜM 08

Web Güvenliği Kontrol Listesi

Web sitenizin güvenliğini değerlendirmek için bu kapsamlı kontrol listesini kullanın.

SSL/TLS ve HTTPS

Güvenli Kodlama

WAF ve Koruma

Düzenli Testler

Final Quiz: Web Güvenliği

Soru 3/3

SQL Injection saldırısını önlemenin en etkili yolu nedir?

🎉 Tebrikler!

Web Güvenliği rehberini tamamladınız! Artık web uygulamanızı korumak için gerekli bilgiye sahipsiniz. Güvenli kodlama, düzenli testler ve doğru araçlarla sitenizi güvence altına alın.

SSS

Web Güvenliği SSS

SSL sertifikası yeterli mi?

Hayır, SSL sadece veri iletimini şifreler. SQL injection, XSS gibi uygulama seviyesi saldırılara karşı koruma sağlamaz. Kapsamlı güvenlik önlemleri gerekir.

WAF gerçekten gerekli mi?

Evet, özellikle e-ticaret veya kullanıcı verisi toplayan siteler için. WAF, bilinen saldırı pattern'lerini otomatik bloklar. Cloudflare ücretsiz WAF sunar.

WordPress sitem güvende mi?

WordPress güvenli olabilir ama doğru yapılandırılmalı. Güncel tutun, güçlü şifreler kullanın, güvenlik eklentisi ekleyin, düzenli yedek alın.

HTTPS olmadan site çalışır mı?

Teknik olarak evet, ancak Google HTTPS'yi sıralama faktörü olarak kullanıyor. Ayrıca modern tarayıcılar HTTP siteleri "güvensiz" olarak işaretliyor.

Güvenlik testi ne sıklıkla yapılmalı?

Vulnerability scan: haftalık/aylık. Penetration test: yılda en az 1 kez. Kod review: her deployment öncesi. Sürekli monitoring: 7/24.

Sitem hacklendiyse ne yapmalıyım?

Siteyi offline alın, yedekten temiz versiyonu geri yükleyin, tüm şifreleri değiştirin, güvenlik açıklarını kapatın, Google'a bildirin.

Ücretsiz güvenlik araçları var mı?

Evet. OWASP ZAP (DAST), Semgrep (SAST), Nikto (scanner), Let's Encrypt (SSL), Cloudflare (WAF/CDN) ücretsiz ve etkili araçlardır.

DDoS saldırısına karşı ne yapmalıyım?

Cloudflare veya benzeri CDN kullanın. Rate limiting uygulayın. Sunucu kapasitesini artırın. DDoS koruma servisi alın.

Web Sitenizin Güvenliğini Test Edin

Ücretsiz araçlarla web sitenizin güvenlik durumunu kontrol edin.