Sitesi hacklenen işletme sahiplerinin ilk tepkisi genelde aynı oluyor: “Biz kimseye bir şey yapmadık, niye bizi seçtiler?” Cevap, kimsenin sizi seçmediğidir.
İnternette sürekli çalışan otomatik tarayıcılar var. Bilinen bir açığı, mesela belli bir eklentinin eski bir sürümünü, tarayıp buldukları her siteye aynı saldırıyı deniyorlar. Site küçük ya da büyük olması fark etmiyor; kapının açık olması yetiyor.
İyi haber şu: bu tür saldırılara karşı korunmanın büyük kısmı olağanüstü bir güvenlik uzmanlığı değil, düzenli bakımdır.
Alan adı ve bağlantı tarafında ne gerekiyor?
1. HTTPS her sayfada zorunlu
SSL/TLS sertifikası, ziyaretçi ile sunucu arasındaki trafiği şifreler. Sertifikasız site tarayıcıda “Güvenli değil” uyarısı alır; iletişim formu dolduran kimse kalmaz. Google da HTTPS’i uzun süredir bir sıralama sinyali olarak sayıyor.
Sertifika bugün ücret gerektirmiyor: Let’s Encrypt üzerinden otomatik yenilenebiliyor. Sertifika yenilemesi elle takip edilecek bir iş olmamalı; otomatik yenilenmiyorsa bir gün mutlaka süresi dolar. Dikkat edilecek üç şey:
- Otomatik yenileme: yenilemenin gerçekten çalıştığını hosting panelinden kontrol edin.
- Tam yönlendirme:
http://ile gelen her adreshttps://sürümüne yönlensin. - Karışık içerik yok: HTTPS sayfa içinde
http://ile çağrılan görsel veya script kalmasın, yoksa tarayıcı yine uyarır.
2. HSTS başlığı
Strict-Transport-Security başlığı tarayıcıya “bu siteye bir daha asla şifresiz bağlanma” der. Bir kez ziyaret edildikten sonra araya girme saldırılarının bir kısmını baştan keser.
3. Alan adı sizin adınıza kayıtlı olmalı
Güvenliğin en çok atlanan maddesi teknik bile değil. Alan adı sizi yapan ajansın hesabında duruyorsa, bir anlaşmazlıkta siteniz de e-postanız da rehin kalır. Kayıt sahibi (registrant) şirketinizin adına olmalı, panel erişimi sizde durmalı.
Bunun yanında: alan adına kayıt kilidi (registrar lock) koyun ve otomatik yenilemeyi açın. Süresi dolan alan adı, sitenin ve e-postanın birlikte kapanması demek.
Yazılım tarafında neler güncel tutulmalı?
4. Güncellemeleri geciktirmeyin
Bir eklentinin güvenlik güncellemesi yayımlandığı an, o açık artık herkese açıktır: yayımlanan yama, aynı zamanda saldırganlar için tarif niteliğindedir. Güncelleme ile saldırı arasındaki süre kısa olabiliyor.
Kural: çekirdek yazılım, tema ve eklentiler otomatik güncellensin; büyük sürüm atlamaları önce test kopyasında denensin.
5. Kullanmadığınız eklenti ve temayı silin
Pasif duran eklenti de sunucuda dosya olarak durur ve açığı istismar edilebilir. “Belki lazım olur” diye bırakılan eklentiler, en sık kullanılan giriş yollarından biridir. Devre dışı bırakmak yetmez, silin.
6. Yönetici sayısını sınırlayın
Herkese yönetici yetkisi vermeyin. İçerik girecek kişi editör yetkisiyle çalışabiliyorsa yönetici olmasın. İşten ayrılan veya iş biten kişilerin hesaplarını kapatın; ajans değiştirdiğinizde eski ajansın erişimini kaldırın.
7. Yönetim panelini gizleyin ve sınırlayın
Standart giriş adresleri (/wp-admin, /administrator) botların ilk denediği yerlerdir. Yapılabilecekler: giriş adresini değiştirmek, başarısız deneme sayısını sınırlamak, mümkünse panele yalnızca belli IP’lerden erişime izin vermek.
Yönetici erişimi nasıl korunur?
8. Parolalar benzersiz olsun
En sık görülen senaryo şu: aynı parola hem hostingde hem e-postada hem de başka bir sitede kullanılmış; o başka site sızmış ve parola listesi dolaşıma girmiş. Saldırgan sizin siteye girmedi, sadece elindeki parolayı denedi.
Her hesap için ayrı, uzun parola. Bunu akılda tutmanın yolu bir parola yöneticisi kullanmaktır; ekipte ortak kullanılan hesaplar için de paylaşımlı kasa mantığı işler.
9. İki adımlı doğrulama (2FA)
Hosting paneli, alan adı paneli, site yönetim paneli, e-posta ve Google İşletme Profili, hepsinde açık olmalı. Parola sızsa bile ikinci adım olmadan giriş yapılamaz. Bu, listedeki en yüksek getirili maddedir.
10. Google İşletme Profilinizi de koruyun
Yerel işletmeler için sitenin kendisi kadar kritik bir varlık Google İşletme Profili. Ele geçirilen profilde telefon numarası, web adresi ve hatta işletme adı değiştirilebilir; müşteri sizi arıyor sanıp başkasına ulaşır. Profil sahipliği şirket hesabında olsun, yönetici erişimleri düzenli gözden geçirilsin, hesapta 2FA açık olsun.
Site güvenliği neden düzenli bakım istiyor?
11. Yedek: otomatik, dışarıda ve test edilmiş
Üç şart birlikte sağlanmalı:
- Otomatik: elle alınan yedek, ihtiyaç duyulduğunda hep birkaç ay eskidir.
- Dışarıda: yedek sitenin durduğu sunucuda olmasın. Sunucu ele geçtiğinde ya da sağlayıcı çöktüğünde yedek de gider.
- Test edilmiş: yılda en az bir kez yedekten geri dönmeyi deneyin. Bozuk yedek, yedek yokluğundan daha tehlikelidir çünkü yanlış bir güven verir.
12. Sunucu ve PHP sürümü desteklenen sürümde olsun
Destek dışı kalmış bir PHP veya veritabanı sürümü artık güvenlik yaması almaz. Hosting panelinizden sürümü kontrol edin; eski sürümde kaldıysanız güncellemeden önce siteyi test kopyasında deneyin.
13. Güvenlik başlıkları
Sunucu tarafında eklenen birkaç HTTP başlığı, bütün bir saldırı sınıfını ucuza kapatır:
| Başlık | Ne yapar |
|---|---|
Content-Security-Policy |
Sayfada hangi kaynaktan kod çalışabileceğini sınırlar |
X-Content-Type-Options: nosniff |
Tarayıcının dosya türünü tahmin etmesini engeller |
Referrer-Policy |
Dışarı çıkan bağlantılarda adres bilgisinin sızmasını sınırlar |
Strict-Transport-Security |
Şifresiz bağlantıyı baştan reddettirir |
Content-Security-Policy: frame-ancestors (ya da X-Frame-Options) |
Sitenizin başka bir sitede çerçeve içinde gösterilmesini engeller; tıklama hırsızlığına karşı en ucuz önlemdir |
14. Form ve dosya yükleme noktalarını kapatın
İletişim ve teklif formları, spam botlarının ve enjeksiyon denemelerinin ilk uğradığı yerdir. Sunucu tarafında doğrulama yapın, dosya yükleme varsa yalnızca beklenen türlere izin verin ve yüklenen dosyaların çalıştırılabildiği bir dizine düşmediğinden emin olun.
KVKK açısından hangi yükümlülükler var?
Türkiye’de kişisel veri işleyen her web sitesinin, iletişim formu bile olsa, yerine getirmesi gereken yükümlülükler var:
- Aydınlatma metni: Hangi verinin hangi amaçla işlendiği, ne kadar saklandığı, kime aktarıldığı açıkça yazılmalı.
- Açık rıza: Pazarlama izni ile hizmet için gereken veri işleme ayrı ayrı ele alınmalı; tek bir kutucukla her şeye onay alınmamalı.
- Çerez yönetimi: Zorunlu olmayan çerezler ziyaretçi onay vermeden çalışmamalı.
- Veri minimizasyonu: Formda gerçekten gerekmeyen alanı istemeyin. Toplanmayan veri sızmaz.
- Yurt dışı aktarım: Sunucu, analitik veya form servisi yurt dışındaysa aktarım şartlarının sağlanması gerekir.
- VERBİS: Kayıt yükümlülüğü kapsamındaysanız kaydınızı yaptırın.
Bir veri ihlali yaşandığında Kurul’a ve ilgili kişilere bildirim yükümlülüğü doğar. Bu yüzden güvenlik, IT işi olmanın ötesinde bir uyum meselesidir.
Ayda bir hangi kontroller yapılmalı?
Karmaşık bir güvenlik programına gerek yok. Ayda bir şu altı maddeye bakmak riskin önemli bölümünü azaltır:
- Güncellemeler yapıldı mı, bekleyen var mı?
- Son yedek ne zaman alındı, dışarıda mı duruyor?
- Yönetici listesinde tanımadığınız hesap var mı?
- Sertifikanın otomatik yenilemesi çalışıyor mu, alan adı ne zaman bitiyor?
- Search Console’da güvenlik uyarısı var mı?
- Sitede kullanılmayan eklenti birikti mi?
Kurumsal web sitesi projelerimizde bu maddelerin çoğu mimari kararla baştan çözülüyor: site statik olarak üretildiği için sunucuda çalışan bir yönetim paneli veya veritabanı saldırı yüzeyi bırakmıyor, güncelleme bekleyen eklenti listesi oluşmuyor. Bakım anlaşması olan projelerde bu rutini biz yürütüyoruz; olmayanlarda listeyi teslimde veriyoruz ki kendiniz takip edebilesiniz. Firmanıza özel bir uygulama ya da entegrasyon gerekiyorsa özel yazılım hizmetimiz var; platform seçiminin güvenliğe etkisi için WordPress, Wix ya da özel yazılım karşılaştırmasına bakın. Sitenizin hızı da güvenlik gibi düzenli bakım ister: site hızı rehberi.
Kaynaklar
Bu rehberdeki teknik eşikler ve kural tanımları aşağıdaki birincil kaynaklara dayanıyor.