Modern Web Sitelerinde Güvenlik: OWASP Standartları ve Veri Koruma Yöntemleri
Modern Web Sitelerinde Güvenlik: OWASP Standartları ve Veri Koruma Yöntemleri
Sistem Yöneticisi
Kıdemli Yazılım Mimarı
{ "title": "Modern Web Sitelerinde Güvenlik: OWASP Standartları ve Veri Koruma Rehberi", "slug": "modern-web-guvenlik-owasp-veri-koruma-rehberi", "summary": "Modern web projelerinde OWASP standartlarıyla güvenlik açığı kapatma ve veri koruma adımları. Geliştiriciler ve dijital ajans ekipleri için teknik uygulama rehberi.", "content": "
Modern Web Güvenliği Neden Zorunlu?
Modern web mimarilerinde güvenlik sonradan eklenen bir katman değil, temel gereksinimdir. Gelişen web trendleri ile birlikte API tabanlı sistemler, mikro servisler ve tek sayfa uygulamaları (SPA) yeni saldırı yüzeyleri oluşturur. Bir dijital ajans veya geliştirici ekibinin veri ihlallerini önlemek için OWASP (Open Worldwide Application Security Project) Top 10 standartlarını eksiksiz uygulaması gerekir. Bu rehber, kritik güvenlik açıklarını adım adım nasıl kapatacağınızı gösterir.
Adım 1: Kırık Erişim Kontrolü (Broken Access Control) Tespiti ve Engellenmesi
OWASP listesinin ilk sırasındaki risk. Kullanıcıların yetkisi olmayan verilere URL değiştirerek veya parametre manipülasyonu ile erişmesidir.
Uygulama Adımları:
- Varsayılan Olarak Reddet: Tüm uç noktaları (endpoint) varsayılan olarak yetkisiz kılın, sadece doğrulanmış rollere açıkça izin verin.
- IDOR Koruması: Kaynak kimliklerini doğrudan URL parametresinde almayın.
/api/invoices?id=102yerine oturum açmış kullanıcının ID'si ile veritabanı sorgusu filtreleyin:
// Hatalı: Doğrudan parametreye güvenme\nSELECT * FROM invoices WHERE id = :input_id;\n\n// Doğru: Kullanıcı kapsamı zorunlu kılma\nSELECT * FROM invoices WHERE id = :input_id AND user_id = :session_user_id;Adım 2: Kriptografik Hataları ve Veri Sızıntılarını Önleme
Hassas verilerin (şifreler, kredi kartları, kişisel veriler) iletim ve depolama aşamasında şifrelenmemesi veri hırsızlığına yol açar.
Uygulama Adımları:
- Aktarım Sırasında Şifreleme: TLS 1.3 zorunlu kılın. HSTS (HTTP Strict Transport Security) başlığını aktif edin:
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload- Parola Depolama: MD5 veya SHA-256 şifre saklamak için yetersizdir. Argon2id veya bcrypt kullanın:
// PHP bcrypt örneği\n$hash = password_hash($plainPassword, PASSWORD_BCRYPT, [\'cost\' => 12]);Adım 3: Enjeksiyon (Injection) ve XSS Saldırılarını Engelleme
Kullanıcı girdisinin doğrulanmadan doğrudan veritabanı sorgusuna veya HTML çıktısına dahil edilmesi sistem kontrolünün ele geçirilmesine neden olur.
Uygulama Adımları:
- Parametreli Sorgular: SQL Injection engellemek için ORM veya Prepared Statements kullanın:
$stmt = $pdo->prepare(\'SELECT * FROM users WHERE email = :email\');\n$stmt->execute([\'email\' => $email]);- Content Security Policy (CSP): XSS saldırılarını durdurmak için HTTP başlığı ekleyin:
Content-Security-Policy: default-src \'self\'; script-src \'self\'; object-src \'none\';Adım 4: Güvenlik Başlıklarını (HTTP Headers) Yapılandırma
Modern web tarayıcılarının güvenlik özelliklerini aktif etmek için sunucu düzeyinde temel başlıkları tanımlayın.
X-Frame-Options: DENY(Clickjacking koruması)X-Content-Type-Options: nosniff(MIME-sniffing koruması)Referrer-Policy: strict-origin-when-cross-origin(Veri sızıntısını önler)Permissions-Policy: geolocation=(), camera=(), microphone=()(Donanım erişimini kısıtlar)
Adım 5: Bağımlılık Yönetimi ve Güvenlik Taramaları
Üçüncü taraf kütüphanelerdeki bilinen açıklar, saldırganların sisteme sızması için en yaygın yoldur. Güncel trendler, yazılım tedarik zinciri güvenliğine odaklanır.
Uygulama Adımları:
- CI/CD süreçlerine otomatik güvenlik taraması entegre edin:
# Node.js projeleri için güvenlik denetimi\nnpm audit\n\n# PHP projeleri için güvenlik denetimi\ncomposer auditKritik Uyarı: Güvenlik sürekli bir süreçtir. Dijital ajans ekipleri ve geliştiriciler, canlıya geçiş öncesinde mutlaka bir checklist üzerinden sızma testi (penetration test) ve statik kod analizi (SAST) uygulamalıdır.", "schema_type": "HowTo", "suggested_tags": [ "modern-web", "owasp", "veri-koruma", "rehber", "dijital-ajans", "trendler", "web-guvenligi" ] }