WordPress Güvenlik Kontrol Listesi: Sitenizi Saldırılara Karşı Koruyun

41 maddelik kapsamlı güvenlik rehberi — başlangıç seviyesinden ileri düzeye, her WordPress kullanıcısı için.
İçindekiler
Makale başlıklarına göz atarak istediğiniz içeriğe kolaylıkla ulaşın.

İnternetteki tüm web sitelerinin yaklaşık %40’ı WordPress altyapısıyla çalışıyor. Bu popülerlik, WordPress’i saldırganların bir numaralı hedefi haline getiriyor. Ancak çoğu saldırı WordPress’in kendisindeki bir açıktan değil, basit yapılandırma hatalarından kaynaklanıyor.

WorPress Neden Bu Kadar Sık Hackleniyor?

Güçlü bir şifre kullanmamak, eklentileri güncellememek veya varsayılan ayarları değiştirmemek gibi hatalar — bunlar sanıldığından çok daha yaygın ve çoğu zaman birkaç dakikada düzeltilebilecek kadar basit.

Bu rehber, WordPress sitenizi korumak için atmanız gereken tüm adımları tek bir kontrol listesinde topluyor. Her bölümde üç farklı perspektif sunuyoruz:

WordPress’e Yeni Başlayanlar İçin

Teknik terim kullanmadan, sade dilde açıklamalar

Hangi eklenti ya da ayar paneliyle yapılacağı adım adım gösterilir

Kod bilgisi gerektirmeyen çözümler önceliklidir

Web Geliştiriciler İçin

Kod örnekleri ve yapılandırma dosyası düzenlemeleri

Müşteri siteleri için uygulanabilir best practice’ler

Otomasyon ve CI/CD pipeline güvenlik entegrasyonları

Site Sahipleri ve İşletmeler İçin

Güvenlik ihlallerinin iş süreçlerine etkisi ve risk yönetimi

Geliştiriciye ya da ajansa iletilecek kontrol noktaları

Maliyet-fayda odaklı önceliklendirme önerileri

wp-config.php Güvenlik Ayarları

WordPress’in kalbi sayılan wp-config.php dosyası, veritabanı bilgileri ve güvenlik anahtarlarını içerir. Bu dosyadaki dört kritik ayar, sitenizin güvenlik temelini oluşturur.

Güvenlik Ayarlarını Değiştirin

WordPress.org’un sunduğu Salt Generator aracıyla benzersiz güvenlik anahtarları oluşturun ve wp-config.php dosyasına yapıştırın.

Dosya Düzenleyiciyi Devredışı Bırakın

Yönetim panelinden tema/eklenti dosyalarının düzenlenmesini engelleyin: define('DISALLOW_FILE_EDIT', true);

Admin Girişini SSL ile zorunlu Kılın

HTTPS aktifse şu satırı ekleyin: define('FORCE_SSL_ADMIN', true);

Debug Modunu Kapatın

Canlı sitede WP_DEBUG değerini false yapın. Debug çıktıları saldırganlara sistem bilgisi sızdırır.

// wp-config.php güvenlik ayarları

define('DISALLOW_FILE_EDIT', true);
define('FORCE_SSL_ADMIN', true);
define('WP_DEBUG', false);

Yeni Başlayanlar

Hosting panelinizden (cPanel veya Plesk) dosya yöneticisine girin, wp-config.php dosyasını açın ve yukarıdaki satırları ekleyin. Emin değilseniz hosting firmanızdan yardım isteyin — çoğu firma bu ayarları ücretsiz yapar.

Geliştiriciler

wp-config.php dosyasını versiyon kontrolüne almayın. Ortam bazlı yapılandırma için .env dosyaları veya sunucu ortam değişkenleri kullanın. Salt anahtarlarını deploy sürecinde otomatik oluşturmayı düşünün.

Site Sahipleri

Geliştiricinize şunu sorun: “wp-config dosyamızdaki güvenlik anahtarları değiştirildi mi ve debug modu kapalı mı?” Bu basit adım, birçok yaygın saldırı potansiyelini kapatır.

Giriş Sayfası Koruması

Ardışık başarısız giriş denemelerinde IP’yi geçici olarak engelleyen bir mekanizma kurun.

Brute-Force Koruması Ekleyin

Ardışık başarısız giriş denemelerinde IP’yi geçici olarak engelleyen bir mekanizma kurun.

Çok Faktörlü Kimlik Doğrulaması (MFA) Kullanın

Tüm yönetici hesaplarında passkey/WebAuthn veya en azından TOTP (Google Authenticator) etkinleştirin.

Benzersiz Kullanıcı Adları Seçin

adminadministratoryonetici gibi tahmin edilebilir adları asla kullanmayın.

Tema Üzerindeki Giriş Bağlantılarını Kaldırın

Temanızda görünür giriş linkleri varsa bunları silin.

Güçlü ve Benzersiz Şifreler Kullanın

Her hesap için farklı, en az 16 karakter uzunluğunda şifre oluşturun. Şifre yöneticisi kullanmak en güvenli yoldur.

Oturumları Düzenli Temizleyin

Ekip değişikliklerinde veya güvenlik olaylarından sonra tüm oturumları sonlandırıp şifreleri yenileyin.

Hata Mesajlarını Genelleştirin

“Kullanıcı adı bulunamadı” yerine “Giriş bilgileri hatalı” gibi genel mesajlar kullanarak saldırganlara ipucu vermeyin.

Yeni Başlayanlar

Limit Login Attempts Reloaded veya Wordfence gibi ücretsiz eklentiler, brute-force koruması ve MFA’yı tek tıkla etkinleştirmenizi sağlar. Şifre yöneticisi olarak Bitwarden (ücretsiz) kullanabilirsiniz.

Geliştiriciler

Hata mesajlarını özelleştirmek için login_errors filtresini kullanın. WebAuthn entegrasyonu için WP-WebAuthn eklentisini değerlendirin. Rate limiting’i uygulama katmanı yerine Cloudflare veya sunucu düzeyinde yapın.

Site Sahipleri

Ekibinizdeki herkesin MFA kullandığından emin olun. Bir çalışan ayrıldığında şifrelerini değiştirmek ve oturumlarını kapatmak şirket prosedürünüz olmalı. Bu, veri ihlali riskini önemli ölçüde azaltır.

Yönetim Paneli Güvenliği

Yönetim paneline erişim sağlayan bir saldırgan, sitenin tamamını kontrol edebilir. Bu bölüm, panelin kendisini koruma altına almanızı sağlayacak adımları içerir.

wp-admin Klasörünü Şifreyle Koruyun

Sunucu düzeyinde HTTP kimlik doğrulaması ekleyin (gerekli dosyaları engelden muaf tutmayı unutmayın).

Çekirdek, Tema ve Eklentileri Güncel Tutun

Uygun olan yerlerde otomatik güncellemeyi etkinleştirin.

En Az Yetki İlkesini Uygulayın

Günlük içerik yayınlayan hesapları Editör veya Yazar rolüyle sınırlayın, Yönetici yetkisini yalnızca gerektiğinde kullanın.

Yönetici Hesaplarını Üç Ayda Bir Denetleyin

Kullanılmayan hesapları hemen silin.

Zararlı Yazılım Taraması Planlayın

Düzenli aralıklarla dosya değişikliklerini ve malware’i tarayın.

Olay Müdahale Planı Oluşturun

Güvenlik ihlali durumunda izolasyon, kurtarma ve şifre/API anahtarı rotasyonu adımlarınız hazır olsun.

Yeni Başlayanlar

WordPress Ayarlar panelinde otomatik güncellemeleri açın. Sucuri veya Wordfence eklentileri, zararlı yazılım taramalarını sizin yerinize otomatik yapar ve şüpheli bir durum olduğunda e-posta ile bildirir.

Geliştiriciler

Staging ortamında güncelleme testleri yapın, ardından production’a deploy edin. wp-admin için .htpasswd koruması eklerken admin-ajax.php ve admin-post.php dosyalarını beyaz listeye almayı unutmayın, aksi halde front-end AJAX çağrıları bozulur.

Site Sahipleri

Bir güvenlik ihlali planınız olmalı: “Sitemiz hacklense ne yapardık?” Sigorta poliçesi gibi — ihtiyaç olmadan hazırlanmalı. Bakım sözleşmenize güvenlik taraması ve güncelleme maddelerini eklettirin.

Tema Güvenliği

Temalar, WordPress sitenizin görünen yüzü olduğu kadar potansiyel bir güvenlik açığı noktasıdır. Güncellenmeyen veya güvenilmez kaynaklardan indirilen temalar, arka kapı (backdoor) içerebilir.

Temayı Güncel Tutun

Tema güncellemelerini düzenli kontrol edin ve uygulayın.

Kullanılmayan Temaları Silin

Yalnızca devre dışı bırakmak yetmez; tamamen kaldırın.

Güvenilir Kaynaklardan İndirin

WordPress.org tema dizini veya bilinen premium tema mağazaları dışındaki kaynaklardan uzak durun.

Aktif Bakım Yapılan Temaları Tercih Edin

Son güncelleme tarihi, değişiklik notları ve güvenlik yamaları geçmişi olan temaları seçin.

Dikkat: “Nulled” (cracklenmiş) premium temalar, zararlı kod içermesi en yaygın saldırı yollarından biridir. Ücretsiz tema arayışı, sitenizin tamamını riske atar.

Yeni Başlayanlar

Yalnızca WordPress.org’un resmi tema dizininden veya Themeforest, Elegant Themes gibi güvenilir platformlardan tema indirin. Torrent ya da dosya paylaşım sitelerinden asla tema almayın.

Geliştiriciler

Child theme kullanarak ana temayı doğrudan düzenlememek güncelleme sürecini kolaylaştırır. Tema kodunu deploy öncesinde Theme Check eklentisi veya PHPCS ile statik analiz yapın.

Site Sahipleri

Temanızın lisans bilgisini doğrulayın. Geliştiricinize “Temamız orijinal lisanslı mı ve son ne zaman güncellendi?” diye sorun. Lisanssız tema kullanımı hem güvenlik hem hukuki risk taşır.

Eklenti Güvenliği

Eklentiler, WordPress’in gücü ve aynı zamanda en zayıf halkası. Her eklenti, potansiyel bir saldırı yüzeyi ekler. Az ama öz eklenti kullanımı, güvenliğin temel ilkelerindendir.

Tüm Eklentileri Güncel Tutun

Güncellemeler genellikle güvenlik yamalarını içerir.

Kullanılmayan Eklentileri Silin

Devre dışı bırakılmış bile olsa, bir eklenti sunucuda güvenlik açığı oluşturabilir.

Güvenilir Kaynaklardan Yükleyin

WordPress.org eklenti dizini ve bilinen geliştiricilerin kendi siteleri en güvenli seçeneklerdir.

Terk Edilmiş Eklentileri Değiştirin

6 aydan uzun süredir güncelleme almayan eklentileri aktif bakım yapılan alternatiflerle değiştirin.

Gereksiz Eklenti Yüklemeyin

Her eklenti saldırı yüzeyini genişletir. Bir eklenti eklemeden önce gerçekten ihtiyacınız olup olmadığını sorgulayın.

Eklenti İzinlerini Denetleyin

Eklentinin talep ettiği yetkiler, sunduğu işlevle orantılı olmalı.

Yeni Başlayanlar

WordPress yönetim panelinde Eklentiler sayfasına girin. Yanında “Güncelleme mevcut” yazan her eklentiyi güncelleyin. Kullanmadığınız eklentilerin “Sil” butonuna tıklayın — sadece devre dışı bırakmak yetmez.

Geliştiriciler

WPScan veritabanını CI/CD pipeline’ınıza entegre ederek bilinen eklenti açıklarını otomatik tarayın. Composer ile eklenti yönetimi yaparak versiyon kontrolü ve otomatik güncelleme süreçlerini standartlaştırın.

Site Sahipleri

Bakım raporlarınızda eklenti listesini isteyin. Sitenizde kaç eklenti olduğunu ve hangilerinin aktif bakım gördüğünü bilin. 20’den fazla eklenti varsa, geliştiricinizden bir “eklenti diyet planı” isteyin.

Veritabanı Güvenliği

WordPress’in tüm içeriği — yazılar, yorumlar, kullanıcı bilgileri — veritabanında saklanır. Veritabanı kaybı, site kaybı demektir.

Güçlü Veritabanı Kimlik Bilgileri Kullanın

Veritabanı kullanıcısına yalnızca gerekli minimum yetkileri verin.

Otomatik Yedekleme Planlayın

Yedeklerin bir kopyasını mutlaka farklı bir lokasyonda (offsite) saklayın.

Güvenilir Kaynaklardan Yükleyin

WordPress.org eklenti dizini ve bilinen geliştiricilerin kendi siteleri en güvenli seçeneklerdir.

Yedek Geri Yüklemelerini Test Edin

Geri yükleme çalışmayan bir yedek, yedek değildir.

Gereksiz Eklenti Yüklemeyin

Her eklenti saldırı yüzeyini genişletir. Bir eklenti eklemeden önce gerçekten ihtiyacınız olup olmadığını sorgulayın.

Yedekleri Şifreleyin

Hem depolama sırasında (at rest) hem aktarım sırasında (in transit) şifreleme kullanın.

Yeni Başlayanlar

UpdraftPlus eklentisi ile Google Drive veya Dropbox’a otomatik günlük yedekleme kurun. Ayda bir kez yedekten geri yükleme testi yapın — 10 dakikanızı alır ama kriz anında sizi kurtarır.

Geliştiriciler

Veritabanı kullanıcısını SELECT, INSERT, UPDATE, DELETE ile sınırlandırın — DROP, ALTER, GRANT yetkilerini vermeyin. Yedekleme için mysqldump + gpg şifreleme ile cron job oluşturun ve S3/GCS gibi object storage’a gönderin.

Site Sahipleri

Geliştiricinize iki soru sorun: “Yedekler nerede saklanıyor?” ve “En son ne zaman geri yükleme testi yapıldı?” Yanıtlar net değilse, bu konuyu acil öncelik olarak ele alın. Veri kaybı, iş kaybı demektir.

Hosting ve Sunucu Güvenliği

Hosting altyapısı, WordPress güvenliğinin temelidir. En güvenli WordPress kurulumu bile zayıf bir sunucu üzerinde savunmasız kalır.

Güvenilir Hosting Sağlayıcısı Seçin

Güvenlik duvarı, DDoS koruması ve düzenli yama uygulayan sağlayıcıları tercih edin.

Sunucuya Yalnızca SFTP veya SSH ile Bağlanın

Düz FTP şifrelenmemiş veri iletir; kullanmayın.

Dosya İzinlerini Doğru Ayarlayın

Klasörler 755, dosyalar 644 olmalıdır.

wp-config.php Erişimini Engelleyin

Bu dosya dışarıdan erişilebilir olmamalıdır.

Gereksiz Dosyaları Kaldırın

license.txtwp-config-sample.php ve readme.html dosyalarını silin veya engelleyin.

Dizin Listelemeyi Kapatın

.htaccess dosyasına Options All -Indexes ekleyin.

WAF/CDN Kullanın

Cloudflare, Sucuri veya benzeri bir servis ile DDoS ve bot koruması sağlayın.

Uptime ve Güvenlik Uyarılarını Etkinleştirin

SSL sertifika süre sonu, dosya değişiklikleri, giriş anomalileri için bildirim alın.

XML-RPC’yi Devredışı Bırakın

Açıkça ihtiyacınız yoksa kapatın; brute-force saldırıları için sık kullanılan bir vektördür.

Kullanıcı Adı Keşfini Engelleyin

?author=1 gibi sorgularla kullanıcı adlarının ifşa edilmesini önleyin.

Yeni Başlayanlar

Türkiye’de güvenlik odaklı WordPress hosting sağlayıcıları arasında Starter-tier Cloudways, Starter-tier Kinsta veya yerli firmalardan güvenlik desteği sunanları değerlendirebilirsiniz. Cloudflare’in ücretsiz planı bile temel DDoS ve bot koruması sağlar.

Geliştiriciler

Nginx kullanıyorsanız location ~ /\. ile dot-file erişimini engelleyin. XML-RPC için xmlrpc.php dosyasına direkt erişimi sunucu yapılandırmasında kapatın. Fail2Ban ile SSH brute-force koruması ekleyin.

Site Sahipleri

Hosting sözleşmenizde güvenlik SLA (Service Level Agreement) maddelerini kontrol edin. Saldırı durumunda yanıt süresi, yedekleme sıklığı ve DDoS koruması kapsam dahilinde mi? En ucuz hosting çoğu zaman en pahalıya mal olan hostingtir.

Sıkça Sorulan Sorular

WordPress çekirdeği düzenli olarak güvenlik denetimine tabi tutulur ve güvenli kabul edilir. Saldırıların büyük çoğunluğu güncellenmeyen eklentiler, zayıf şifreler ve yanlış yapılandırmalardan kaynaklanır — WordPress’in kendisinden değil.
Wordfence, Sucuri Security ve iThemes Security en popüler seçeneklerdir. Tek bir eklenti yeterlidir — birden fazla güvenlik eklentisi birbiriyle çakışabilir ve performansı düşürebilir.
Önce siteyi bakım moduna alın. Temiz bir yedekten geri yükleyin, tüm şifreleri ve API anahtarlarını değiştirin, güvenlik taraması yapın ve saldırı vektörünü tespit edip kapatın. Profesyonel destek almaktan çekinmeyin.
SSL, veri aktarımını şifreler — bu gerekli ama tek başına yeterli değil. SSL, sunucunuzdaki güvenlik açıklarını, zayıf şifreleri veya güncellenmeyen eklentileri korumaz. Kapsamlı güvenlik için bu rehberdeki tüm adımları uygulamanız gerekir.
Güncellemeleri haftalık, kullanıcı hesaplarını aylık, kapsamlı güvenlik denetimini ise üç ayda bir yapmanızı öneriyoruz. Otomatik tarama ve bildirim araçları bu süreci kolaylaştırır.

Sonuç: Güvenlik Bir Süreçtir

WordPress güvenliği tek seferlik bir iş değil, sürekli devam eden bir süreçtir. Bu kontrol listesindeki 41 maddeyi hepsini bir günde uygulamanız gerekmez — ancak hiçbirini göz ardı etmemelisiniz.

Öncelik sırası olarak: önce güçlü şifreler ve MFA, ardından güncellemeler, sonra sunucu yapılandırması ve son olarak izleme/denetim adımlarını hayata geçirin. Her adım, sitenizi saldırganlara karşı biraz daha dayanıklı kılar.