Sitenizin performansı düşüyor, garip giriş denemeleri fark ediyorsunuz ya da hosting sağlayıcınız "XML-RPC'yi kapatın" diyor ama nedenini anlamıyorsunuz. Bu yazıda XML-RPC'nin ne olduğunu, neden çoğu site için bir güvenlik açığı haline geldiğini ve nasıl güvenli şekilde kapatılacağını sade bir dille anlatıyoruz.
XML-RPC, WordPress'in dış uygulamalarla "konuşmasını" sağlayan eski bir iletişim protokolüdür. Basitçe söylemek gerekirse: normalde sitenize sadece tarayıcınızdan, WordPress yönetim paneli üzerinden giriş yaparsınız. XML-RPC ise bu paneli açmadan, bir mobil uygulama veya masaüstü programı üzerinden sitenize yazı gönderebilmenizi, yorum yönetebilmenizi sağlayan bir "arka kapı" niteliğinde bir arayüzdür.
Örneğin eskiden popüler olan WordPress mobil uygulamasının bazı sürümleri ya da bazı üçüncü parti yazı yayınlama araçları, siteye bu yolla bağlanırdı.
Bu dosya sitenizde şu adreste durur:
sitenizinadresi.com/xmlrpc.php
XML-RPC, tasarlandığı dönemde faydalı bir özellikti. Ama zamanla iki büyük problem ortaya çıktı:
Normalde bir saldırgan sitenize giriş yapmayı denerken, her şifre denemesi için ayrı bir istek göndermesi gerekir — bu yavaştır ve fark edilmesi kolaydır. XML-RPC'deki system.multicall adlı bir fonksiyon sayesinde ise saldırgan tek bir istekte yüzlerce, hatta binlerce kullanıcı adı/şifre kombinasyonunu deneyebilir. Bu da:
pingback adlı bir özellik, sitenizin başka sitelere "biri senden bahsetti" bildirimi göndermesini sağlar. Saldırganlar bu özelliği kötüye kullanarak sitenizi, kendi bilgisi ve isteği dışında başka bir siteye saldırı göndermek için bir araç haline getirebilir. Yani siteniz farkında olmadan bir saldırının parçası olabilir.
XML-RPC'ye gelen sürekli istekler (özellikle kötü niyetli botlardan), sunucunuzun işlemci ve bellek kaynaklarını gereksiz yere tüketir. Bu da sitenizin yavaşlamasına, hatta hosting paketinize göre zaman zaman erişilemez hale gelmesine yol açabilir.
Çoğu site için cevap evettir. Çünkü:
Kısacası: Jetpack veya benzeri özel bir entegrasyon kullanmıyorsanız, XML-RPC'yi kapatmak sitenizi hem daha hızlı hem daha güvenli hale getirir.
Sitenizin teknik yapısına göre birkaç farklı yöntem var. En basitten en gelişmişe doğru sıralayalım.
Teknik bilgisi olmayan kullanıcılar için en pratik çözüm budur.
Zaten bir güvenlik eklentisi kullanıyorsanız (Wordfence, Sucuri, iThemes Security gibi), bu eklentilerin ayarlarında genellikle hazır bir "XML-RPC'yi devre dışı bırak" seçeneği bulunur — ayrı bir eklenti kurmanıza gerek kalmayabilir.
Sitenizin ana dizinindeki .htaccess dosyasına aşağıdaki kodu eklemeniz, xmlrpc.php dosyasına dışarıdan erişimi tamamen engeller:
Order Deny,Allow
Deny from all
Not:
.htaccessdosyasını düzenlemeden önce mutlaka bir yedeğini alın. Hatalı bir düzenleme sitenizin erişilemez hale gelmesine sebep olabilir.
Kod eklemeye alışkınsanız, temanızın functions.php dosyasına şu satırı ekleyerek de kapatabilirsiniz:
add_filter('xmlrpc_enabled', '__return_false');
Not: Tema güncellemelerinde bu değişikliğin kaybolmaması için bir "child tema" kullanmanızı öneririz.
Sunucunuz Nginx kullanıyorsa, sunucu yapılandırma dosyasına şu bloğu eklemeniz gerekir:
location = /xmlrpc.php {
deny all;
}
Bu değişiklik sonrası Nginx servisinin yeniden başlatılması (reload) gerekir.
Değişikliği yaptıktan sonra tarayıcınızdan şu adrese gidin:
sitenizinadresi.com/xmlrpc.php
| Durum | Öneri |
|---|---|
| Jetpack veya XML-RPC gerektiren bir eklenti kullanmıyorum | Devre dışı bırakın |
| Eski bir masaüstü yayınlama aracı kullanıyorum | Önce ihtiyacınızı gözden geçirin |
| Sitem yavaş, garip trafik görüyorum | Devre dışı bırakmayı öncelikli yapın |
XML-RPC, çoğu modern WordPress sitesi için artık kullanılmayan ama açık bırakıldığında saldırganlara kapı aralayan bir özelliktir. Yukarıdaki yöntemlerden size uygun olanı seçerek birkaç dakika içinde sitenizi bu risklerden koruyabilirsiniz.
Emin değilseniz ya da bir eklentinin XML-RPC'ye ihtiyaç duyup duymadığını kontrol etmek istiyorsanız, hosting destek ekibimizle iletişime geçebilirsiniz.
Hayır, günümüzde çoğu site XML-RPC'ye ihtiyaç duymaz. Sadece bazı eski mobil uygulamalar veya Jetpack gibi belirli eklentiler bu özelliği kullanabilir; onları kullanmıyorsanız devre dışı bırakmak güvenlidir.
XML-RPC, brute-force (kaba kuvvet) saldırılarında ve DDoS amaçlı pingback isteklerinde sıkça istismar edilen bir arayüzdür; devre dışı bırakmak bu saldırı yüzeyini kapatır.
Bir güvenlik eklentisi (örn. Wordfence) üzerinden veya .htaccess/functions.php dosyasına eklenecek birkaç satır kodla xmlrpc.php dosyasına erişimi engelleyebilirsiniz.
Bilgi bankasını detaylı olarak incelediniz, fakat ihtiyacınız olan bilgiyi bulamıyorsanız,
Bir Destek Talebi Oluşturun.