1. Anasayfa
  2. Blog
  3. WordPress Kılavuzları

WordPress XML-RPC Nasıl Devre Dışı Bırakılır?

WordPress XML-RPC Nasıl Devre Dışı Bırakılır?

WordPress’te sıkça karşılaşılan XML-RPC, web sitenizin farklı uygulama ve servislerle iletişim kurmasını sağlayan bir iletişim protokolüdür. Örneğin; bazı eklentilerin içerik yayınlaması, güncelleme yapması veya verileri uzaktan yönetebilmesi XML-RPC sayesinde mümkün olur. Ayrıca mobil uygulamalar ya da blog yönetim araçları gibi üçüncü taraf yazılımlar da bu protokolü kullanarak siteyle etkileşim kurabilir. Ancak işin bir de güvenlik tarafı var. XML-RPC, kötü niyetli girişimler için açık kapı bırakabildiği için kullanıcılar bu özelliği devre dışı bırakmayı tercih ediyor. Bu yazıda, “WordPress’te XML-RPC nasıl devre dışı bırakılır” adım adım açıkladık.

XML-RPC Nedir?

XML-RPC, WordPress’in uzaktan erişim protokolüdür. Basitçe söylemek gerekirse, WordPress sitenizle dışarıdan, yani tarayıcı kullanmadan iletişim kurmanızı sağlayan bir köprüdür. Mobil uygulamalar, masaüstü yayın araçları veya otomasyon sistemleri bu protokol sayesinde sitenize bağlanabilir. XML-RPC dosyası, WordPress kurulumunuzun ana dizininde xmlrpc.php adıyla bulunur. 2013 yılına kadar varsayılan olarak kapalıydı, ancak sonrasında WordPress ekibi bunu otomatik olarak açık hale getirdi.

Peki bu özelliği gerçekte ne zaman kullanırsınız? İşte en yaygın kullanım senaryoları şunlardır:

  • WordPress mobil uygulamasından içerik yayınlamak
  • Jetpack gibi eklentilerin sitenizle iletişim kurması
  • Pingback ve trackback bildirimleri almak
  • Microsoft Word gibi harici editörlerden yazı göndermek
  • Üçüncü parti yayın araçlarını kullanmak

Güvenlik uzmanları ve WordPress topluluğu, XML-RPC’yi kullanmıyorsanız mutlaka kapatmanızı önerir. Sucuri ve Wordfence gibi güvenlik firmalarının raporlarına göre, XML-RPC istismarı hala en yaygın saldırı yöntemlerinden biridir.

  • Brute Force Saldırıları– Saldırganlar XML-RPC üzerinden tek bir istekte yüzlerce şifre denemesi yapabilir. Normal giriş sayfasında 100 deneme yapmak 100 istek gerektirirken, XML-RPC ile bunu tek seferde yapabilirler. Bu, güvenlik eklentilerinin bile tespit edemeyeceği bir hızdır.
  • DDoS Amplifikasyon– XML-RPC’nin pingback özelliği, sitенizi DDoS saldırılarının parçası haline getirebilir. Saldırganlar sitenizi kullanarak başka sitelere saldırı düzenleyebilir, bu da IP adresinizin kara listeye alınmasına neden olabilir.
  • Sistem Kaynakları Tüketimi– Sürekli gelen XML-RPC istekleri sunucu kaynaklarınızı tüketir. CPU ve RAM kullanımı artar, site yavaşlar ve bazen çökebilir. Hosting sağlayıcınız kaynak aşımı nedeniyle sitenizi askıya bile alabilir.

XML-RPC Nasıl Devre Dışı Bırakılır?

İşleme başlamadan önce sitenizde XML-RPC açık mı, kapalı mı kontrol etmek için aşağıdaki adımı izleyebilirsiniz:

  • Tarayıcınızda şu URL’yi açın: https://siteadresiniz.com/xmlrpc.php
  • Eğer 403, 404 ya da başka bir hata alıyorsanız, büyük olasılıkla devre dışıdır.
  • Eğer “XML-RPC server accepts POST requests only.” şeklinde bir mesaj görüyorsanız, aktif demektir.

WordPress sitenizde güvenliği artırmak için xmlrpc.php’yi devre dışı bırakmanıza yardımcı olacak birkaç farklı seçenek var:

1. .htaccess dosyası ile xml-rpc’yi kapatma

  • XML-RPC’yi manuel olarak devre dışı bırakmak için .htaccess dosyanızın en altına aşağıdaki kodu ekleyip değişiklikleri kaydedin:
<Files xmlrpc.php>
Order Allow,Deny
Deny from all
</Files>
  • cPanel Dosya Yöneticisi ya da FTP aracılığıyla .htaccess dosyasını açın (genellikle “public_html” klasöründe bulunur) ve kodu dosyanın altına yapıştırın:
.htaccess dosyası ile xml-rpc'yi devre dışı bırakma

2. Eklenti ile xml-rpc’yi devre dışı bırakma

Kodlarla uğraşmak istemiyorsanız, birkaç tıklamayla XML-RPC’yi kapatabileceğiniz WordPress eklentileri de mevcut. Bunun için Wordpress kontrol panelinde Eklentiler>Yeni Ekle yolunu izleyin ve arama kutusuna “Disable XML-RPC” yazın. XML-RPC’yi kaldırmak için kullanabileceğiniz farklı eklenti seçenekleri göreceksiniz. Bunlardan birini kurup etkinleştirin ve eklenti talimatlarını izleyerek XML-RPC’yi devre dışı bırakın.

  • Disable XML-RPC Eklentisi:
    • WordPress yönetim panelinize giriş yapın
    • Eklentiler → Yeni Ekle menüsüne gidin
    • Arama kutusuna “Disable XML-RPC” yazın
    • Eklentiyi bulup “Şimdi Yükle” butonuna tıklayın
    • Yükleme tamamlandıktan sonra “Etkinleştir” butonuna tıklayın.
    • Bu kadar! Herhangi bir ayar yapmaya gerek yok. Eklenti aktif olduğu sürece XML-RPC kapalıdır. Eklentinin boyutu 10 KB’den küçük olduğu için sitenizin hızına hiçbir etkisi olmaz.
  • Alternatif Eklentiler:
    • Wordfence Security: Kapsamlı güvenlik eklentisi, XML-RPC’yi ayarlardan kapatma seçeneği sunar.
    • iThemes Security: Güvenlik paketinin bir parçası olarak XML-RPC koruması sağlar.
    • All In One WP Security: XML-RPC’yi tamamen kapatma veya sadece pingback’i devre dışı bırakma seçenekleri mevcut.
  • Zaten bir güvenlik eklentisi kullanıyorsanız, ayrı bir eklenti yüklemek yerine mevcut eklentinizin ayarlarını kontrol edin. Birçok güvenlik eklentisi XML-RPC yönetimi sunar.

3. Functions.php ile XML-RPC’yi devre dışı bırakma

Bir diğer seçenek de temanızın functions.php dosyası aracılığıyla XML-RPC’yi kapatmaktır. Bu işlem için kullandığınız temanın functions.php dosyasının en altına aşağıdaki filtreyi ekleyebilirsiniz:

add_filter( 'xmlrpc_enabled', '__return_false' );
Functions.php ile XML-RPC'yi devre dışı bırakma

4. Nginx’te XML-RPC’yi Engelleme

Apache yerine Nginx kullanan sunucularda .htaccess yoktur, bu yüzden farklı bir yapılandırma gerekir. Nginx konfigürasyonuna aşağıdaki satırı ekleyebilirsiniz:

location = /xmlrpc.php {
deny all;
return 403;
}

5. Jetpack’in XML-RPC’sine Kısmi Engel Koyma

Jetpack kullanıyorsanız ve tamamen devre dışı bırakmak istemiyorsanız, sadece XML-RPC üzerindeki brute-force saldırılarına karşı bir filtre ekleyebilirsiniz:

add_filter('jetpack_xmlrpc_enabled', '__return_false');

📌 Yukarıdaki işlemlerden herhangi birini kullanarak WordPress sitenizin XML-RPC özelliğini devre dışı bırakabilirsiniz. Ancak, bu özellik hala bazı eklentiler tarafından kullanıldığı için sitenizin işlevselliğini etkileyebilir. Bu nedenle önce sitenizin ve eklentilerinizin XML-RPC kullanıp kullanmadığını kontrol etmenizde fayda var. Ayrıca, web sitenizin güvenliğini artırmanıza yardımcı olacak “WordPress Güvenlik Önlemleri” başlıklı kılavuzumuzda da web site güvenliği için çeşitli öneriler mevcut.

XML-RPC’yi Kapatmadan Önce Kontrol Edilmesi Gerekenler

Hemen kapatma butonuna basmadan önce, bir dakika duralım. XML-RPC’yi kapatmak bazı özelliklerin çalışmayı durdurmasına neden olabilir. İşte kontrol etmeniz gereken kritik noktalar:

  • Mobil Uygulama Kullanımı– WordPress’in resmi mobil uygulamasını kullanarak içerik yayınlıyor musunuz? XML-RPC kapalıyken bu uygulama çalışmaz. Ancak endişelenmeyin, alternatif çözümler var.
  • Jetpack Eklentisi– Jetpack kullanıyorsanız, bazı özellikleri XML-RPC’ye bağımlıdır. İstatistikler, otomatik paylaşım ve site yedekleme gibi fonksiyonlar etkilenebilir. Kapatmadan önce Jetpack ayarlarınızı gözden geçirin.
  • Pingback ve Trackback– Diğer bloglardan gelen geri bağlantı bildirimlerini önemsiyorsanız, bunların da XML-RPC aracılığıyla geldiğini unutmayın. Ancak açıkçası, günümüzde pingback özelliği spam kaynağı olmaktan öteye gitmiyor.
  • Üçüncü Parti Entegrasyonlar– IFTTT, Zapier veya otomatik içerik yayınlama araçları kullanıyor musunuz? Bazıları XML-RPC üzerinden bağlanır. Kullandığınız araçların belgelerini kontrol edin.

WordPress ekibi XML-RPC’yi kaldırmayı düşünüyor mu? diye merak edenler var. Konuyla ilgili henüz resmi bir açıklama olmasa da yeni projeler için REST API kullanımı öneriliyor. Bu nedenle, eğer gerçekten ihtiyaç duyulmuyorsa, mutlaka XML-RPC kapatılmalıdır.

Editör Notu: İçeriğimiz okuyucu desteğiyle finanse edilmektedir. Bu, bağlantılarımızdan bazılarına tıkladığınızda komisyon kazanabileceğimiz anlamına gelir.

Burada sadece teorik bilgiler değil, gerçek deneyimlere dayanan pratik çözümler var. Burada yol arkadaşı olacağız. Karmaşık konuları birlikte çözecek, teknik detayları birlikte aşacağız...

Yazarın Profili