SSL Sertifika Analizi Açık Port Tespiti Web Uygulama Tarama DNS Güvenlik Denetimi HTTP Başlık Analizi Yanlış Yapılandırma Tespiti Yazılım Parmak İzi Alt Alan Adı Tarama
SSL Sertifika Analizi Açık Port Tespiti Web Uygulama Tarama DNS Güvenlik Denetimi HTTP Başlık Analizi Yanlış Yapılandırma Tespiti Yazılım Parmak İzi Alt Alan Adı Tarama

Tüm Rehberler

WordPress, internetin yüzde kırkından fazlasına güç vererek en çok hedef alınan içerik yönetim sistemi haline gelmiştir. Bu kontrol listesi; WordPress kurulumlarını kaba kuvvet saldırıları, eklenti açıkları, veri sızıntısı ve zararlı yazılım enjeksiyonu gibi yaygın tehditlere karşı güçlendirmek isteyen geliştiriciler, teknik yöneticiler ve site sahipleri için hazırlanmıştır. Her adımı sırayla uygulayın; sonunda güvenlik duruşunuz önemli ölçüde iyileşmiş olacaktır.

01

WordPress Çekirdeği, Temalar ve Eklentileri Güncelleyin

Başarılı WordPress saldırılarının büyük çoğunluğu, eski yazılımlardaki bilinen açıkları istismar eder. Saldırganlar eski sürüm çalıştıran siteleri aktif olarak tarar ve açıklama yapıldıktan saatler içinde yayımlanan CVE'leri kullanır. Her şeyi güncel tutmak, etkisi en yüksek tekil önleminizdir.

  • Kontrol Paneli → Güncellemeler bölümüne gidin ve bekleyen tüm WordPress çekirdek güncellemelerini hemen uygulayın.
  • Etkin olmayan eklentiler de dahil olmak üzere kurulu tüm eklentileri en son kararlı sürümlerine güncelleyin.
  • Etkin olmayan temalar da dahil olmak üzere kurulu tüm temaları en son kararlı sürümlerine güncelleyin.
  • wp-config.php dosyasına define('WP_AUTO_UPDATE_CORE', 'minor'); ekleyerek küçük çekirdek sürümler için otomatik arka plan güncellemelerini etkinleştirin.
  • Yeni açıklanan eklenti ve tema CVE'lerinden haberdar olmak için WordPress Güvenlik Danışmaları akışına abone olun veya bir güvenlik açığı veritabanı (ör. WPScan Vulnerability Database) kullanın.
  • Kullanmadığınız eklenti ve temaları yalnızca devre dışı bırakmak yerine tamamen silin; etkin olmayan kod da istismar edilebilir.
02

Kimlik Doğrulama ve Kullanıcı Erişimini Güçlendirin

Zayıf kimlik bilgileri ve kısıtlanmamış giriş uç noktaları, saldırganların en sık kullandığı giriş noktalarıdır. Kimlik doğrulamayı güçlendirmek, bir şifre ele geçirilse bile yetkisiz erişim riskini önemli ölçüde azaltır.

  • Tüm kullanıcı hesapları için güçlü bir şifre politikası uygulayın — büyük/küçük harf, rakam ve sembol içeren en az 16 karakter.
  • Editör rolü ve üzerindeki tüm hesaplar için iki faktörlü kimlik doğrulama (2FA) eklentisi (ör. WP 2FA, Wordfence Login Security) kurun ve yapılandırın.
  • Belirli sayıda başarısız giriş denemesinden sonra IP adreslerini engelleyen bir giriş sınırlama eklentisi kurun (ör. 5 deneme, 30 dakika kilitleme).
  • Varsayılan yönetici kullanıcı adını admin'den tahmin edilemez bir değere değiştirin — yeni bir yönetici kullanıcı oluşturun, içerikleri aktarın ve orijinal admin hesabını silin.
  • XML-RPC kullanmıyorsanız (uzak yayınlama, Jetpack vb.) devre dışı bırakın; bunun için temanızın functions.php dosyasına add_filter('xmlrpc_enabled', '__return_false'); ekleyin veya özel bir eklenti kullanın. Sensagraph, XML-RPC'nin sitenizde herkese açık olup olmadığını kontrol eder.
  • Sunucu yapılandırması veya bir eklenti aracılığıyla /wp-login.php URL'sini IP izin listesiyle kısıtlayın ya da özel bir URL'ye taşıyın.
  • Tüm kullanıcı hesaplarını gözden geçirin ve artık gerekli olmayanları kaldırın; hiçbir hesabın rolünün gerektirdiğinden fazla yetkiye sahip olmadığından emin olun.
03

wp-config.php ve Dosya İzinlerini Güvenli Hale Getirin

wp-config.php dosyası veritabanı kimlik bilgilerinizi, gizli anahtarlarınızı ve diğer hassas yapılandırmaları içerir. Hatalı dosya izinleri, saldırganların kritik dosyaları okuması veya değiştirmesi için yaygın bir vektördür.

  • wp-config.php izinlerini 400 (yalnızca sahip okuyabilir) veya en fazla 440 olarak ayarlayın.
  • Barındırma ortamınız izin veriyorsa wp-config.php dosyasını WordPress kök dizininin bir üst klasörüne taşıyın — WordPress onu otomatik olarak bulacaktır.
  • Web sunucusu düzeyinde wp-config.php'ye doğrudan HTTP erişimini engelleyin (Apache: .htaccess dosyasına <Files wp-config.php> deny from all </Files> bloğu ekleyin; Nginx: location ~ /wp-config.php { deny all; } bloğu ekleyin).
  • WordPress dizin izinlerini temel olarak 755, dosya izinlerini 644 olarak ayarlayın; hiçbir dosya veya dizinde 777 kullanmayın.
  • .htaccess izinlerini 444 (salt okunur) olarak ayarlayın.
  • wp-config.php dosyasına define('DISALLOW_FILE_EDIT', true); ekleyerek WordPress yönetici panelinden dosya düzenlemeyi devre dışı bırakın.
  • Yüksek güvenlikli ortamlarda yönetici panelinden dosya değiştirmeyi (eklenti/tema kurulumu) devre dışı bırakmak için wp-config.php dosyasına define('DISALLOW_FILE_MODS', true); ekleyin.
  • Resmi WordPress gizli anahtar üretecini kullanarak yeni gizli anahtarlar ve salt değerleri oluşturun, ardından bunları wp-config.php dosyasında güncelleyin.
04

HTTPS ve Güçlü TLS Yapılandırmasını Zorunlu Kılın

Verilerin düz HTTP üzerinden iletilmesi, kimlik bilgilerini, oturum çerezlerini ve kullanıcı verilerini ele geçirme riskiyle karşı karşıya bırakır. Doğru yapılandırılmış bir TLS kurulumu artık isteğe bağlı değil, zorunlu bir temel gereksinimdir.

  • Güvenilir bir CA'dan geçerli bir TLS sertifikası edinin ve kurun (Let's Encrypt ücretsiz sertifika sunar).
  • Site genelinde HTTPS'i zorlamak için WordPress ayarlarını güncelleyin: Ayarlar → Genel bölümünde hem WordPress Adresi hem de Site Adresi'ni https:// olarak ayarlayın.
  • Sunucu düzeyinde kalıcı HTTP'den HTTPS'e yönlendirme (301) ekleyin — yalnızca WordPress üzerinden değil.
  • Sunucunuzda TLS 1.0 ve TLS 1.1'i devre dışı bırakın; yalnızca TLS 1.2 ve TLS 1.3'ü kabul edin.
  • Güçlü şifre paketleri kullanın — sunucu yazılımınız için Mozilla SSL Yapılandırma Üreteci'ni takip edin.
  • Sertifikanızın sunduğunuz tüm alt alan adlarını kapsadığını doğrulayın (uygun şekilde wildcard veya SAN).
  • Sona ermeden en az 30 gün önce sertifika yenileme hatırlatıcısı ayarlayın; otomatik yenileme kullanın (ör. Certbot cron görevi). Sensagraph, sitenizde TLS sertifikası geçerliliğini ve son kullanma tarihini izler.
  • HTTP Strict Transport Security (HSTS) başlığını etkinleştirin — başlık yapılandırması için 5. adıma bakın.
05

HTTP Güvenlik Başlıklarını Yapılandırın

Güvenlik başlıkları, tarayıcılara sitelerinizi ziyaret eden kullanıcıları çapraz site betik çalıştırma (XSS), clickjacking, MIME koklama ve diğer istemci taraflı saldırılara karşı koruyan politikaları uygulamasını söyler. Eklenmesi dakikalar alır ve anında koruma sağlar.

  • Tüm alt alan adlarında bir yıl boyunca HTTPS'i zorunlu kılmak için Strict-Transport-Security: max-age=31536000; includeSubDomains; preload başlığını ekleyin.
  • Clickjacking saldırılarını önlemek için X-Frame-Options: SAMEORIGIN başlığını (veya CSP frame-ancestors yönergesini) ekleyin.
  • MIME türü koklama saldırılarını önlemek için X-Content-Type-Options: nosniff başlığını ekleyin.
  • Çapraz kaynaklara ne kadar referans bilgisi paylaşıldığını kontrol etmek için Referrer-Policy: strict-origin-when-cross-origin başlığını ekleyin.
  • Sitenizin kullanmadığı tarayıcı özelliklerini (ör. kamera, mikrofon, coğrafi konum) devre dışı bırakmak için Permissions-Policy başlığını ekleyin.
  • Sitenizin komut dosyaları, stiller, yazı tipleri ve medya yüklediği kaynakları beyaz listeye alan bir Content-Security-Policy (CSP) başlığı tanımlayın. Uygulamadan önce rapor modu (Content-Security-Policy-Report-Only) ile başlayın.
  • Bilgi ifşasını azaltmak için X-Powered-By ve Server başlıklarını kaldırın veya gizleyin. Sensagraph, sitenizde tüm önemli güvenlik başlıklarını otomatik olarak kontrol eder ve eksik veya yanlış yapılandırılmış olanları işaretler.
06

Saldırı Yüzeyini Azaltın — Eklentiler, Temalar ve Özellikler

Her ek eklenti, tema veya etkin özellik potansiyel bir giriş noktasıdır. Kurulumunuzun ayak izini küçültmek, saldırganın hedef alabileceği açık sayısını doğrudan azaltır.

  • Kurulu tüm eklentileri denetleyin: kullanılmayanları, terk edilmişleri (12+ aydır güncelleme yok) veya bilinen yamalanmamış açıkları olanları kaldırın.
  • Büyük, aktif kullanıcı tabanına ve düzenli güncelleme geçmişine sahip eklentileri tercih edin — son güncelleme tarihi ve aktif kurulum sayısı için WordPress.org eklenti sayfasını kontrol edin.
  • Aktif temanız ve onun üst teması (alt tema kullanıyorsanız) dışındaki tüm temaları kaldırın.
  • WordPress REST API kullanıcı numaralandırma uç noktasına ihtiyacınız yoksa devre dışı bırakın — kimliği doğrulanmamış /wp-json/wp/v2/users istekleri için 401 döndürecek mantık ekleyin.
  • Web sunucunuzda dizin taramayı devre dışı bırakın (Apache: Options -Indexes ayarlandığından emin olun; Nginx: autoindex off; ayarlandığından emin olun).
  • Geri bağlantılara (pingback/trackback) ihtiyaç duymuyorsanız devre dışı bırakın: Ayarlar → Tartışma bölümüne gidin ve Diğer bloglardan bağlantı bildirimlerine izin ver seçeneğinin işaretini kaldırın.
  • WordPress sürüm numarasını gizleyin — functions.php dosyasına remove_action('wp_head', 'wp_generator'); ekleyerek <head> bölümünden kaldırın. Sensagraph, sitenizde açık sürüm bilgilerini ve diğer parmak izi vektörlerini tespit eder.
07

WordPress Veritabanını Güvenli Hale Getirin

Veritabanı tüm site içeriğini, kullanıcı kimlik bilgilerini (hash'lenmiş) ve yapılandırmayı saklar. Yanlış yapılandırılmış veya kolayca tahmin edilebilir bir veritabanı kurulumu, saldırganlara yüksek değerli bir hedef sunar.

  • Varsayılan WordPress tablo önekini wp_'den rastgele bir dizeye değiştirin (ör. xk7q_) — bunu kurulum sırasında yapın veya mevcut sitelerde dikkatli bir şekilde özel bir eklenti/manuel işlem kullanarak gerçekleştirin.
  • WordPress için yalnızca ihtiyaç duyduğu ayrıcalıklara sahip adanmış bir MySQL/MariaDB kullanıcısı oluşturun: yalnızca WordPress veritabanında SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROPGRANT, FILE veya küresel ayrıcalıklar değil.
  • Güçlü, rastgele oluşturulmuş bir veritabanı parolası kullanın (32+ karakter).
  • Veritabanı sunucusunun 127.0.0.1'e (yalnızca yerel ağ) bağlı olduğundan ve genel internetten erişilemediğinden emin olun.
  • Veritabanı sunucunuzda uzak root girişini devre dışı bırakın.
  • Düzenli otomatik veritabanı yedekleri planlayın ve geri yükleme prosedürlerini periyodik olarak doğrulayın.
08

Web Uygulama Güvenlik Duvarı (WAF) Kurun

Bir WAF, gelen HTTP isteklerini inceler ve SQL enjeksiyonu, XSS denemeleri ve güvenlik açığı tarayıcıları gibi bilinen kötü amaçlı kalıpları WordPress'e ulaşmadan önce engeller. Bu, internet ile uygulamanız arasına kritik bir katman ekler.

  • Eklenti tabanlı bir WAF (ör. Wordfence, Sucuri) ile ağ/DNS düzeyinde bir WAF (ör. Cloudflare, AWS WAF) arasında seçim yapın. Ağ düzeyindeki WAF, WordPress'in kendisi tehlikeye girse bile koruma sağlar.
  • ModSecurity veya Cloudflare WAF gibi yapılandırılabilir bir WAF kullanıyorsanız OWASP Core Rule Set (CRS) kurallarını etkinleştirin.
  • Kaba kuvvet ve kazıma girişimlerini yavaşlatmak için WAF'ınızda bot korumasını ve hız sınırlamasını etkinleştirin.
  • WAF'ı, /wp-config.php, /.env ve /xmlrpc.php gibi hassas yollara erişmeye çalışan istekleri engelleyecek veya sorgulayacak şekilde yapılandırın.
  • Engellenen saldırı kalıplarını haftalık olarak inceleme için WAF günlüklerini gözden geçirin ve boşluk açmadan hatalı pozitifleri azaltmak için kuralları ince ayar yapın.
  • İlk kurulumdan sonra güvenli bir simüle saldırı kullanarak WAF etkinliğini test edin (ör. ?test=<script>alert(1)</script> içeren bir istek gönderin ve engellendiğini doğrulayın).
09

Düzenli Yedek Alın ve Geri Yüklemeleri Test Edin

Hiçbir güvenlik duruşu mükemmel değildir. Güvenilir, test edilmiş yedekler son savunma hattınızdır — fidye yazılımı, yanlışlıkla silme veya başarılı bir saldırıdan fidye ödemeden veya veri kaybetmeden hızla kurtulmanızı sağlar.

  • Veritabanını ve tüm WordPress dosyalarını (çekirdek, eklentiler, temalar, yüklemeler) düzenli aralıklarla yedekleyin — aktif siteler için en az günlük.
  • Yedekleri en az iki konumda saklayın: bir uzak konum (ör. S3, Google Cloud Storage, Backblaze) ve bir yerel veya hazırlık ortamı.
  • Uzak konumda saklamadan önce yedek arşivlerini şifreleyin.
  • Geri yükleme sürecinizi en az üç ayda bir test edin — hiç geri yüklemediğiniz bir yedek, test edilmemiş bir varsayımdır.
  • Hemen tespit edilemeyen bir güvenlik ihlalinden önce bir noktaya geri dönebilmek için birden fazla yedek nesli saklayın (ör. 7 günlük, 4 haftalık, 3 aylık).
  • Geri yükleme çalışma kitabınızı belgeleyin ve WordPress ortamınızın dışında erişilebilir tutun.
10

Sürekli İzleyin ve Tarayın

Güvenlik tek seferlik bir görev değildir. Her gün yeni açıklar açıklanır, yapılandırmalar zamanla değişir ve saldırganlar sürekli olarak zayıf noktaları araştırır. Sürekli izleme, sorunları olaylara dönüşmeden yakalar.

  • PHP hataları, Apache/Nginx erişim günlükleri ve WordPress hata ayıklama günlükleri için sunucu düzeyinde kayıt tutmayı ayarlayın; bunları düzenli olarak gözden geçirin veya bir günlük yönetim aracına aktarın.
  • Kullanıcı girişlerini, içerik değişikliklerini, eklenti etkinleştirmelerini ve ayar değişikliklerini kayıt altına almak için bir eklentiyle (ör. WP Activity Log) WordPress etkinlik kaydını etkinleştirin.
  • Çalışma süresi izlemesi yapılandırın — sitenizin kapanması durumunda dakikalar içinde uyarı alın; bu, bir saldırının veya tahrifatın erken göstergesi olabilir.
  • WordPress çekirdek dosyaları, eklentiler veya temalarda yetkisiz değişiklikleri tespit etmek için düzenli dosya bütünlüğü kontrolleri yapın.
  • Etki alanınızı bilinen kötü amaçlı yazılım ve kimlik avı engelleme listelerine (Google Safe Browsing, Sucuri SiteCheck) karşı en az aylık olarak kontrol edin.
  • Açık hassas dosyaları, eksik başlıkları, TLS sorunlarını ve bilinen açıkları tespit etmek için otomatik harici güvenlik taramaları çalıştırın — Sensagraph, WordPress sitenizi sürekli tarar ve yeni güvenlik sorunları ortaya çıktıkça sizi uyarır.
  • Güvenlik uyarılarını gözden geçirmekten ve tanımlanmış bir SLA dahilinde bunlara göre harekete geçmekten sorumlu net bir sahip atayın (ör. kritik sorunlar 24 saat içinde, yüksek öncelikli sorunlar 72 saat içinde).

Sıkça sorulan sorular

Eklenti ve tema güncellemelerini en az haftalık olarak kontrol edip uygulamalısınız. Güvenlik düzeltmesinden bahseden kritik güvenlik yamaları için güncellemeyi 24 saat içinde uygulayın. Küçük çekirdek sürümler ve güvenilir, iyi bakımlı eklentiler için otomatik güncellemeleri etkinleştirmek, maruziyetin zaman penceresini önemli ölçüde daraltır.

Hayır. 'admin' kullanıcı adı, WordPress'e yönelik neredeyse her kaba kuvvet saldırısında ilk tahmin edilen isimdir. Tahmin edilemez bir kullanıcı adıyla yeni bir yönetici hesabı oluşturun, eski hesabın içeriklerini aktarın ve orijinal 'admin' kullanıcısını silin. Güçlü bir şifre ve iki faktörlü kimlik doğrulamayla birleştirildiğinde, bu yöntem kaba kuvvet riskini önemli ölçüde azaltır.

Çoğu durumda evet. XML-RPC, kaba kuvvet amplifikasyon saldırıları ve DDoS için sıkça kötüye kullanılan eski bir uzaktan erişim arayüzüdür. Belirli bir entegrasyon için (ör. bazı Jetpack özellikleri veya mobil uygulama yayıncılığı) kullanmıyorsanız, devre dışı bırakmak normal site işlemini etkilemeden önemli bir saldırı vektörünü ortadan kaldırır.

Her şeyi güncel tutmak — WordPress çekirdeği, tüm eklentiler ve tüm temalar — tutarlı biçimde en yüksek etkili eylemdir. WordPress güvenlik ihlallerinin büyük çoğunluğu, eski bileşenlerdeki bilinen, zaten yamalanmış açıkları istismar eder. Diğer tüm sertleştirme adımları bu temel üzerine inşa edilir.

Farklı amaçlara hizmet ederler ve birbirlerini tamamlarlar. Bir güvenlik eklentisi, dosya bütünlüğü izleme, giriş koruması ve yerel güvenlik duvarı kuralları gibi sunucu taraflı özellikler sağlar. Ağ düzeyinde bir WAF (ör. Cloudflare), kötü amaçlı trafiği sunucunuza ulaşmadan filtreler. Güçlü bir güvenlik duruşu için her ikisini de kullanın — ilk savunma hattı olarak bir WAF ve yerleşik izleme ve uyarı için bir güvenlik eklentisi.

Uyarı işaretleri arasında beklenmedik yönetici kullanıcı hesapları, değiştirilen çekirdek dosyalar, Google dizininde spam sayfalar, tanıdık olmayan sitelere yönlendirmeler ve barındırma sağlayıcısının uyarıları yer alır. Bilinen WordPress çekirdek hash değerlerine karşı bir dosya bütünlüğü kontrolü çalıştırın, sitenizi zararlı yazılım tespit hizmetiyle tarayın ve şüpheli istekler için erişim günlüklerinizi inceleyin. Otomatik harici bir tarayıcı da sunucunuzun dışından güvenlik ihlali göstergelerini tespit edebilir.