İçeriğe geç
Gunerdev.
← BlogTeknoloji

Web Sitenizi Hacker'lardan Korumanın 7 Yolu

Veri sızıntısı, fidye yazılımı, defacement... Web güvenliği artık büyük şirketlerin sorunu değil; her boyutta saldırıya açık.

Furkan Güner7 dk
Web güvenlik kalkanı

Web güvenliği, çoğu küçük ve orta ölçekli işletme için "biz neden hedef olalım ki" tavrıyla atlanan bir konu. Oysa otomatik tarayıcılar saldırı için spesifik kurban seçmez; tüm internete dağılırlar. Bir gece, sitenizin defacement saldırısına uğradığını veya tüm veritabanınızın çalındığını öğrenmek istemiyorsanız, temel güvenlik adımlarını mutlaka uygulayın.

1. HTTPS, sadece HTTPS

Hâlâ HTTP üzerinden çalışan siteler var. 2026'da bu kabul edilemez. Let's Encrypt ile ücretsiz SSL sertifikası alın. NGINX veya Apache üzerinde HTTP'den HTTPS'e 301 yönlendirmesi yapın. HSTS başlığı ekleyin ki tarayıcı sizinle her zaman HTTPS üzerinden konuşsun.

`Strict-Transport-Security: max-age=63072000; includeSubDomains; preload`

2. Güçlü güvenlik başlıkları

Modern tarayıcılar bir dizi güvenlik başlığını destekler. En kritikleri:

- **Content-Security-Policy**: XSS saldırılarına karşı en güçlü kalkan - **X-Frame-Options**: Clickjacking'i engeller - **X-Content-Type-Options: nosniff**: MIME-type sniffing'i engeller - **Referrer-Policy**: Hassas URL'lerin sızmasını önler - **Permissions-Policy**: Tarayıcı API'lerine erişimi kısıtlar

Bu başlıkları NGINX veya framework seviyesinde tanımlayın ve düzenli olarak securityheaders.com gibi araçlarla test edin.

3. Bağımlılıkları güncel tutun

Çoğu güvenlik açığı, kullandığınız kütüphanelerden gelir. `npm audit`, Dependabot, Snyk gibi araçlar ile düzenli olarak bağımlılıklarınızı tarayın.

Sadece major güncellemelere değil, patch sürümlere de dikkat edin. `react@18.3.0`'dan `18.3.1`'e geçiş bir güvenlik açığını kapatmış olabilir.

4. Rate limiting ve bot koruması

Kötü niyetli botlar dakikada binlerce istek gönderebilir; iletişim formunuzu spam'le doldurur, login endpoint'inizi brute force eder. NGINX seviyesinde IP bazlı rate limiting kurun. Cloudflare veya benzer bir CDN kullanıyorsanız, bot management özelliklerini etkinleştirin.

İletişim formunuza honeypot alanı ekleyin (görünmez bir input — botlar doldurur, insanlar dolduramaz). Daha güçlü koruma için hCaptcha veya Cloudflare Turnstile kullanın.

5. Veritabanı erişimini kısıtlayın

Eğer bir saldırgan uygulamanıza sızarsa, veritabanına ne kadar erişebilir? İdeal olarak, uygulama veritabanı kullanıcısı sadece ihtiyacı olan tabloları okuyabilmeli, sadece ihtiyacı olan satırları yazabilmeli.

PostgreSQL veya MySQL'de farklı kullanıcılar farklı yetkilerle oluşturun. Production veritabanı şifresini asla kod repolarına commit etmeyin.

6. Loglama ve izleme

Saldırıya uğradığınızı fark etmek aylar alabilir. Düzenli loglama ile bu süreyi günlere indirebilirsiniz. NGINX access ve error logları, uygulama logları, sunucu auth logları (`/var/log/auth.log`) düzenli izlenmeli.

Sentry, Datadog, veya kendi self-hosted çözümlerinizle (Loki + Grafana) anormal aktiviteleri yakalayın. Beklenmeyen 500 hata patlaması, normal olmayan bir IP'den gelen yüksek trafik — bunlar erken uyarı sinyalleridir.

7. Yedekleme stratejisi

En iyi savunmaya rağmen bir gün saldırıya uğrayabilirsiniz. Yedekleriniz var mı? Test edilmiş mi?

Düzenli (günlük) veritabanı yedekleri, haftalık tam sistem yedekleri, en az iki farklı lokasyonda saklanmalı (sunucuda + cloud, örneğin Backblaze B2). Yedeklerinizi belirli aralıklarla test geri yükleme ile doğrulayın — yedek alındığını sandığınız ama bozuk olduğunu sonradan öğrenmek istemezsiniz.

Bonus: 3-2-1 kuralı

3 yedek, 2 farklı medyada, 1 tanesi off-site. Bu klasik kural hâlâ geçerliliğini koruyor.

Güvenlik bir defalık iş değil; sürekli bir disiplindir. Bu 7 adımı uygulayarak çoğu otomatik saldırıya karşı korunmuş olursunuz. Hedefli saldırılara karşı ise ek katmanlar (WAF, penetrasyon testleri, security audit) gerekir.

WhatsApp+90 536 215 16 44