WordPress'i önem sırasına göre sertleştirmek
WordPress güvenliği altı iştir ve sıraları işlerin kendisinden daha önemlidir: her şeyi güncel tutmak, her hesapta en az yetki, iki adımlı doğrulama, bir kez geri yüklediğiniz bir yedek, hâlâ bakımı yapılan bir güvenlik eklentisi ve giriş sayfasını sertleştirmek. Yalnızca ilkini yapsanız bile, kalan beşinin herhangi bir bileşiminden daha fazlasını önlemiş olursunuz.
- Ders 7 / 12
- Orta
- Ücretsiz, kayıt yok
Neyin sertleştirme sayıldığı ve neyin sayılmadığı
Bu sertleştirilmiş sayılır
- Çekirdek, tema ve her eklenti güncel ve ayrı bir açık tarayıcısı da onlara bakıyor
- Yönetici listesini okudunuz ve yönetici olması gerekmeyen her hesap yönetici değil
- İki adımlı doğrulama bir doğrulayıcı uygulamayla açık ve o hesabın uygulama parolalarına da baktınız
- Son yedeği geçici bir klasöre geri yükleyip açtınız
- Yedeğin bir kopyası bu sunucunun dışında da duruyor
Bu bir his, güvenlik değil
- Tek başına giriş sayfası adresini değiştirmek
- WordPress sürüm numarasını gizlemek
- Canlı bir sitede veritabanı tablo önekini değiştirmek
- REST API'yi tümüyle kapatmak
- Hiç okunmayan uzun bir güvenlik duvarı kuralları listesi
Bu sayfa yalnızca WordPress hakkında. Üzerinde durduğu sunucunun, parola sıfırlamanın gittiği e-posta hesabının ve giriş yaptığınız bilgisayarın her birinin kendi sayfası var.
Son kontrol: Bu dersteki bilgiler ve araç adları bu tarihte kaynaklarıyla yeniden doğrulanır.
Gerçek sıra ve çoğu kontrol listesinin sırası neden yanlış
Bir WordPress güvenlik kontrol listesi genelde otuz maddeden oluşur ve hepsi aynı büyüklükte görünür. Pratikte değildirler. İlk üçü kalan yirmi yediden fazlasını önler ve sıra, kimsenin yazmadığı şeydir; çünkü uzun bir liste daha profesyonel görünür.
Bir müşteri sitesinde izlediğimiz sıranın altı adımı var ve kolaylığa göre dizilmemiştir. Her adımın ne kadarını önlediğine göre dizilmiştir.
Önce güncelleme, çünkü bir WordPress sitesine yapılan başarılı girişlerin çoğu kamuya açık ve çoktan yamalanmış bir açıktan gelir. Sonra en az yetki, çünkü hasarın büyüklüğünü, giren hesapların yapmasına izin verilen şeyler belirler. Sonra iki adımlı doğrulama; sızmış bir parolayı felaketten uyarıya çevirir. Sonra bir kez geri yüklediğiniz bir yedek, çünkü sınanmamış bir yedek bir kopya değil bir varsayımdır. Sonra hâlâ bakımı yapılan bir güvenlik eklentisi. Ve en sonda giriş sayfasını sertleştirmek; faydalıdır ve yeri listenin başı değil sonudur.
İlk üç adım tamamen sizin elinizde ve hiçbiri para istemiyor. Dördüncüsü az bir para ister ve en çok huzuru satın alır. Beşinci ve altıncı, insanların genelde önce yaptığı ve altısı içinde en küçük etkiye sahip olanlardır.

Altı adım, her birinin neyi önlediği sırayla
-
1
Her şeyi güncelleyin
Başarılı girişlerin çoğu kamuya açık ve çoktan yamalanmış bir açıktan gelir.
-
2
Her hesapta en az yetki
Hasarın büyüklüğünü, ele geçirilen hesabın yapmasına izin verilen şey belirler.
-
3
İki adımlı doğrulama
Sızmış bir parolayı felaketten uyarıya çevirir.
-
4
Bir kez geri yüklediğiniz bir yedek
Sınanmamış bir yedek bir kopya değil bir varsayımdır.
-
5
Hâlâ bakımı yapılan bir güvenlik eklentisi
Terk edilmiş bir güvenlik eklentisi, kendisi güncellenmemiş bir eklentidir.
-
6
Giriş sayfasını sertleştirmek
Faydalıdır ve yeri listenin başı değil sonudur.
Bu sıra sıradan bir WordPress sitesi içindir. Çevrim içi ödeme alan ya da hassas kullanıcı verisi tutan bir site için bu dersin kapsamadığı başka adımlar da vardır.
Güncellemeler ve bunun neden diğerlerinden fazlasını önlediği
Bir açık yayımlandığında aynı anda iki şey doğar: sorunun tarifi ve yaması. O andan itibaren onu kullanmak isteyen herkes tam olarak nereye nişan alacağını bilir ve güncelleyen herkes listeden çıkar. Bütün oyun, yayım ile güncelleme arasındaki boşluktur.
Bu sitede, Mart 2025'ten bugüne, açık tarayıcısı yalnızca bu kurulumda yüklü yazılımlar için 13 duyuru kaydetti. 10 tanesi eklentilerde, 2 tanesi WordPress çekirdeğinin kendisinde ve 1 tanesi bir temada. Türe göre yedisi siteler arası betik, ikisi kırık erişim denetimi ve geri kalanı birer tane: rastgele kod çalıştırma, hassas veri ifşası, rastgele dosya yükleme ve PHP nesne enjeksiyonu.
Bu on üçün on ikisi bir güncellemeyle kapandı, çoğu günler içinde. Bakmaya değer sayı da bu: on sekiz ayda, olağanüstü hiçbir şeyin yaşanmadığı bir sitede, üzerinde çalışan yazılım on üç kez açıklı ilan edildi ve neredeyse her seferinde cevap tek bir düğmeydi.
Şimdi de daha az söylenen ve bizzat karşılaştığımız kısım: sıfır gösteren bir güncelleme sayacı, güncel olmanın kanıtı değildir. Ticari eklentiler kendi kanalları üzerinden güncellenir ve süresi dolmuş bir lisans o sayacı güncel değil sessiz yapar. Bu kurulumda sayaç sıfır gösteriyor ve açık tarayıcısı bir madde konusunda onunla aynı fikirde değil. Güncelleme sayacının yanında bir açık tarayıcısına ihtiyaç duyulmasının sebebi budur; ikincisi kurulumunuzu görür, birincisi yayımlanmış listeyi.
Çekirdekten yakın bir örneği ayrıca yazdık: WordPress 7.0.4 güvenlik yaması ve hangi sunucuların gerçekten risk altında olduğu.
O 13 duyuru nereden geldi
Mart 2025 ile Eylül 2026 arası, yalnızca bu sitede yüklü yazılımlar için.
- Eklentiler 10 duyuru
- WordPress çekirdeği 2 duyuru
- Bir tema 1 duyuru
Bu on üçü bir WordPress açıkları listesi değil; yalnızca bu tek sitede yüklü yazılımlarla eşleşenler. Başka eklentileri olan başka bir site başka bir sayı alır.
Hesaplar ve 1.224 kullanıcılı bir sitede neden tek bir yönetici var
Bu sitede 1.224 kullanıcı hesabı var. Bunlardan biri yönetici. Diğer 1.223'ü hiçbir şey kuramayan, tema dosyası düzenleyemeyen ve başka bir kullanıcının verisini göremeyen rollere sahip.
Bu sayı bir kaza değil bir karar ve sebebi basit: ele geçirilen bir hesap, tam olarak o hesabın zaten yapabildiği şeyi teslim eder. En az yetki bürokrasi değil, patlamanın büyüklüğüdür.
Bu kuralın genelde kırıldığı iki yer var ve ikisi de iyi niyetten geliyor. Birincisi, bir geliştiriciye ya da bir ajansa şimdilik bir yönetici hesabı vermek ve onu hiç kaldırmamak; beş yıllık bir sitenin yönetici listesinde genelde üç yıl önce o siteyle çalışmayı bırakmış insanlar durur. İkincisi, bir eklentinin eklediği roller. WordPress yetkileri toplar, dolayısıyla abonelere yeni bir yetenek veren bir eklenti erişim listenizi değiştirmiş ve bunu hiçbir yere yazmamıştır.
Sonraki adım iki adımlı doğrulama ve hangi yöntemi seçtiğiniz önemli. Bu sitede yalnızca doğrulayıcı uygulama yöntemi etkin; ne SMS ne e-posta. Sebebi şu: SMS bir telefon numarasına bağlıdır ve bir numara operatörden alınabilir, e-posta ise kendisi bir parolayla açılan bir posta kutusuna bağlıdır; o parola aynı sızıntıdaysa ikinci faktör ikinci faktör olmaktan çıkmıştır.
WordPress'e özgü bir nokta da şu: uygulama parolaları. Bunlar araçları bağlamak için oluşturulan ayrı parolalardır ve tasarım gereği iki adımlı doğrulamanın etrafından dolaşırlar, çünkü insansız çalışmaları beklenir. İki adımlı doğrulamayı açtıysanız aynı hesabın uygulama parolası listesine de bakın; yoksa kilitli kapının yanında açık bir kapı durmaya devam eder.
Sınanmamış bir yedek yedek değildir ve kendisi de sızabilir
Hiç geri yüklemediğiniz bir yedek bir klasördür. Bu cümle, ona ihtiyaç duyduğunuz ve dosyanın yarım kaldığını ya da açmak için gereken parolanın kaybolan sitenin içinde durduğunu öğrendiğiniz güne kadar klişe gibi gelir.
Ama neredeyse hiç kimsenin dile getirmediği ikinci bir nokta var ve biz onunla tam da bu sunucuda karşılaştık.
Yaygın WordPress taşıma eklentisi iki yüz megabaytlık arşivler kurar, onları wp-content altındaki bir klasöre koyar ve o klasörü bir .htaccess dosyasıyla korur. nginx üzerinde o dosya hiçbir şey yapmaz; hatta okunmaz bile. Bugün orada duran kuralı yazmadan önce sınadık ve arşivin düz HTTP üzerinden indirilebildiğini, sunucunun kısmi bir indirme isteğini bile karşıladığını gördük. Her arşivin içinde veritabanının tamamı vardır: kullanıcı satırları, parola özetleri, servis anahtarları ve yapılandırma dosyasının içeriği.
Yani gayet iyi bir yedek, yanlış yerde durduğunda mevcut en büyük sızıntıya dönüşür. Tek dosya, bütün site.
Bu sitenin bugünkü yöntemi, böyle bir dosyaya gelen isteği yetki denetimi için PHP'ye devretmektir; oturum açmış bir yönetici dosyayı alır, herkes 404 alır. Bugün yeniden sınadık: o arşivlerden birine yapılan bir ziyaretçi isteği, kısmi istek başlığıyla bile 404 döndü.
O hikâyeden üç kural kalıyor. Yedek aynı makinede durmamalı, çünkü sitenin yanındaki bir yedek bir hatadan kurtulur, makineden kurtulmaz. Yedeğe erişim, veritabanının kendisine erişim kadar kısıtlı olmalı. Ve geri yüklemeyi yılda bir kez geçici bir klasöre prova edin; bunun nasıl yapılacağı bilgisayar temelleri izleğinde ayrıca anlatılıyor.
Zamanınıza değmeyen şeyler
Şimdi açıkça konum, çünkü WordPress güvenlik tavsiyelerinin büyük bir kısmı güvenlik vermeden güvenlik hissi veren şeylerden oluşuyor.
Belirsizlik tek başına bir savunma değildir. Giriş sayfasının adresini değiştirmek, WordPress sürüm numarasını gizlemek ve tablo önekini değiştirmek hiçbir açığı kapatmaz; yalnızca otomatik bir tarayıcıyı biraz yavaşlatır. Özellikle sizi hedef alan biri üçünü de dakikalar içinde bulur.
Şimdi de dürüst yarısı, çünkü bu site o üç şeyi de yapıyor. Buradaki giriş adresi değiştirildi ve eklenti dosya yolları da yeniden yazıldı. Bunun satın aldığı şey daha az gürültüdür, daha fazla güvenlik değil ve kendi kaydımız iki yarıyı da gösteriyor: üç günde 127 istek varsayılan WordPress giriş adresine gitti ve hiçbiri bir giriş formuna ulaşmadı, çünkü o adres bir ziyaretçiyi başka bir sayfaya yönlendiriyor. O 127 istek ortadan kalkmadı; yalnızca artık hiçbir şeyin üzerine konmuyor. Aynı site güncel tutulmasaydı, o değiştirilmiş adres bir gün bile dayanmazdı.
Tavsiye edilen ve bizim tavsiye etmediğimiz üç şey daha. Canlı bir sitede veritabanı tablo önekini değiştirmek faydasından çok risk taşır; yarım kalır ve öneki bir yere kaydetmiş eklentiler bozulur. REST API'yi tümüyle kapatmak WordPress düzenleyicisini bozar ve erişimi kısıtlamanın çözmediği hiçbir şeyi çözmez. Katkısı uzun bir güvenlik duvarı kuralları listesi olan bir güvenlik eklentisi de, o listeyi hiç okumuyorsanız size hiçbir şey katmamıştır.
Herhangi bir güvenlik tavsiyesine uygulayabileceğiniz basit bir sınama var: bu, hangi belirli saldırıyı durduruyor ve biri zaten içerideyse neyi değiştiriyor. Bu iki soruya net cevabı olmayan tavsiye genellikle bir histir.
Yapay zekayla hızlı yol
WordPress güvenliğini denetlemenin olağan yolu otuz maddelik bir kontrol listesi açıp her maddeyi panoda aramaktır. Hızlı yol, listeyi bu belirli kurulum için WordPress'in kendisine kurdurmak ve modele yalnızca sıralatmaktır. Fark, daha hızlı olması değil; çıktının genel olarak bir site hakkında değil sizin siteniz hakkında olmasıdır. Burada ucuz bir model yerine daha güçlü bir model daha iyi sonuç verir, çünkü bu adım sıraya dair bir yargıdır; şu anki tercihimiz bu sitenin yapay zeka bölümünde listelidir.
- Dört WP-CLI komutu çalıştırın. Dördünün çıktısı birlikte, bir güvenlik denetiminin kuracağı listenin ta kendisidir.
- Çıktıyı modele verin ve kolaylığa göre değil etkiye göre sıralanmış bir iş listesi isteyin.
- Modele güncelleme sütununun ticari eklentiler için yalan söylediğini söyleyin. Bu cümle olmadan o satırları güncel diye işaretler.
- Modelin göremediği iki maddeyi kendiniz işaretleyin: yedeğin gerçekten geri yüklendiğini ve başka bir yerde de bulunduğunu.
Kopyalamaya hazır şablon
Dört komut, sitenin kendisinde:
wp plugin list --fields=name,status,version,update
wp theme list --fields=name,status,version,update
wp user list --role=administrator --fields=user_login,user_registered
wp core verify-checksums
Üçüncü komutta bilerek e-posta sütunu yok, böylece çıktı kişisel veri
taşımıyor.
İstem, dört çıktı da altına yapıştırılmış hâlde:
Bu, bir WordPress sitesinde çalıştırılmış dört WP-CLI komutunun çıktısıdır.
Her maddenin ne kadar kolay yapıldığına göre değil neyi önlediğine göre
sıralanmış bir iş listesi kur. Her madde için şunu yaz: a) ne yapılacak,
b) neden bu sırada, c) atlanırsa ne açık kalır.
Şu dört kurala uy:
1) Güncelleme sütunu ticari eklentiler için yalan söyler. Genel WordPress
deposunda olmayan her eklentiyi güncel değil belirsiz diye işaretle.
2) Devre dışı bir eklentinin de güncellenmesi gerekir; dosyaları diskte.
3) Birden fazla yönetici hesabı varsa, her biri için ayrı ayrı neden
yönetici olduğunu sor.
4) Sitenin güvenli olup olmadığına dair görüş bildirme; bu veri buna cevap
veremez.
Çıktıya güvenmeden önce: Bu dersteki altı adımdan ikisi bu komutların çıktısında hiç görünmez ve tesadüfen en sık atlananlar da onlardır: yedeğin gerçekten geri yüklendiği ve bir kopyasının bu sunucunun dışında bulunduğu. Model ikisini de göremez ve siz sormazsanız yazmadan geçer. Üçüncü bir madde de dürüstçe söylemek gerekirse modelin erişimi dışındadır: wp core verify-checksums çıktısında özel ve ticari eklentiler için hiç sağlama yoktur, dolayısıyla atlandı olarak döner ki bu ne onaydır ne ret. O satırları üreticileriyle kendiniz çözmeniz gerekir.
Bu işte yapay zeka
WordPress güvenliğinde bir dil modeli iyi bir denetim yardımcısı, kötü bir yapılandırma danışmanıdır. Çıktı okumada iyidir: eklenti listesi, kullanıcı listesi, bir açık duyurusunun metni ve o duyurunun sizin sürümünüzle eşleşip eşleşmediği. Yapılandırma üretmede kötüdür ve sebebi, WordPress yapılandırmasının sunucuya bağlı olması ve modelin sizin sunucunuzu görmemiş olmasıdır.
Gerçekten işe yarayan araçlar
- Claude Denetim çıktısını etkiye göre sıralamak ve roller ile yetkiler üzerine akıl yürütmek için; çünkü akıl yürütmesini yazar ve akıl yürütmeye itiraz edilebilir. İran, Anthropic'in iki desteklenen ülke listesinin hiçbirinde yok ve İran'dan resmi bir ödeme yolu bulunmuyor.
- Gemini Hacim işi için: birkaç açık duyurusunu art arda okuyup her birinin hangi sürüm aralığını kapsadığını çıkarmak. Google'ın kendi sayfası Gemini web uygulamasının 230'dan fazla ülke ve bölgede çalıştığını söylüyor ve İran o listede yok.
- WP-CLI Bir yapay zeka aracı değil ve bilerek burada. Kurulumunuzun gerçek envanteri buradan gelir; model yalnızca bunun ürettiğini okur ve o olmadan okuyacak bir şeyi yoktur.
- RGB İran için erişim ve ödeme katmanı, araçların kendisinden ayrı tutulmuş.
Nerede geri teper
Buradaki iki risk bu konuya özgüdür. Birincisi, bir modelden sitemi güvenli hâle getir demeyin; geri gelen şey yarı hatırlanmış wp-config parçaları ve .htaccess kurallarıdır ve canlı bir sitede ya hiçbir şey yapmazlar, çünkü sunucu nginx'tir ve o dosya hiç okunmaz, ya da siteyi devirirler. Yapılandırmayı WordPress'in kendi belgelerinden alın ve modelden onu üretmesini değil açıklamasını isteyin. İkincisi ve daha ciddisi: wp-config dosyasını asla genel amaçlı bir araca yapıştırmayın. İçinde veritabanı parolası ve sekiz kimlik doğrulama anahtarı vardır ve o sekiz anahtar, oturum açmış her kullanıcının oturum çerezini imzalayan şeydir; onların kaybı, birinin parolasız olarak herkesin koltuğuna oturabilmesi demektir. Yapıştırılan içeriğin model eğitimine gidip gitmediği o servisin planına ve ayarlarına bağlıdır ve şirketler bunu kendileri yazar, örneğin Google'ın Gemini uygulamaları için gizlilik sayfasında.
Kaynaklar: Google: Gemini Apps privacy Where you can use the Gemini web app Anthropic supported countries
Bu tavsiyenin sınırı
Bu altı adımın hiçbiri virüslü bir bilgisayardan sağ çıkmaz. Giriş yaptığınız dizüstü kötü amaçlı yazılım taşıyorsa iki adımlı doğrulamayı elinizle kendiniz tamamlarsınız ve oturum çerezi ondan sonra alınır; site açısından sıradan bir yönetici giriş yapmıştır ve her şey yolundadır. Giriş yaptığınız makinenin güvenliğinin sitenin güvenliğinin parçası olmasının sebebi budur ve burada kapsanmıyor. Açıkça söylenecek iki sınır daha: bu ders WordPress hakkındadır, altındaki sunucu, barındırma paneli ya da parola sıfırlamanın gittiği e-posta hesabı hakkında değil; ve içindeki her sayı tek bir kurulumdan geldi, dolayısıyla adımların sırası genellenebilir, rakamlar genellenemez.
Kendi işimizden
Bu dersteki her sayı 7 Eylül 2026'da bu kurulumdan okundu. Mart 2025'ten bugüne on üç açık duyurusu; eklentiler, çekirdek ve bir tema arasında on, iki, bir olarak bölünmüş, on ikisi bir güncellemeyle kapanmış. Tam olarak bir yöneticiyle bin iki yüz yirmi dört kullanıcı hesabı. Yalnızca doğrulayıcı uygulamayla iki adımlı doğrulama ve beş dakikalık pencere içinde adres başına beş, kullanıcı adı başına on denemeye ayarlı giriş sınırları.
Ve kendi öğrendiğimiz, ikisi de bu derste anlatılan iki şey. Birincisi yedek arşivi: mevcut kural yazılmadan önce .wpress dosyası sıradan bir istekle düz HTTP üzerinden indirilebiliyordu ve bugün bir ziyaretçiden gelen aynı istek, kısmi indirme başlığıyla bile 404 dönüyor. İkincisi beklemediğimiz olan: bu kurulumun eklenti listesinde güncelleme sütunu her satır için boş ve aynı anda açık tarayıcısı hâlâ bir açık madde gösteriyor. O maddenin adını ve sürümünü bilerek yazmadık; canlı bir sitede yamalanmamış bir açığın tam yerini söylemek, bu dersin yapmayın dediği şeyin ta kendisi.
Gerçek devam soruları
Yalnızca pano parolasını değiştirmek yeterli mi?
Bir sızıntıda olabilecek bir parola için evet, gereklidir ve benzersiz olmalıdır. Ama yeni bir parola bir eklentinin kodundaki bir açık hakkında hiçbir şey yapmaz; o giriş yolu giriş sayfasından hiç geçmez. Yalnızca bir şey yapacaksanız parolayı değil güncellemeyi seçin, iki şey yapacaksanız ikisini de yapın.
Ücretsiz bir güvenlik eklentisi yeter mi, yoksa ücretli mi gerekir?
Ciddi eklentilerin çoğunun ücretsiz sürümü giriş deneme sınırı ve olay kaydı içerir ve bu ikisi faydanın büyük bir payını taşır. Genelde ücretli olan şey açık taraması ve sizin belirli eklentileriniz hakkında otomatik uyarılardır ve bu dersten sonra o kısmın neden önemli olduğunu biliyorsunuz. İşi birine devretmeyi tercih ederseniz, o inceleme ve sertleştirme site güvenliği başlığı altında yaptığımız iştir.
Otomatik güncellemeleri açmalı mıyım?
Çekirdek güvenlik güncellemeleri için evet, tereddütsüz; WordPress bunu varsayılan olarak açık tutar ve kapatmak için iyi bir sebep yoktur. Eklentiler için değişir: günlük otomatik yedeği ve haftada bir bakan biri olan bir sitede açmak kâr eder. Yedeği olmayan bir sitede tek bir otomatik güncelleme gece yarısı ana sayfayı bozabilir ve kimse sabaha kadar fark etmez. Yani bu sorunun cevabı aslında kendisine değil, aynı listenin dördüncü adımına bağlıdır.