XML-RPC, kullanıcıların üçüncü taraf uygulamalar, araçlar ve hizmetler kullanarak WordPress web sitelerine bağlanmalarını sağlayan temel bir WordPress API'sidir. Ne yazık ki geçmişte bilgisayar korsanları, WordPress web sitelerine erişim sağlamak için XML-RPC'yi istismar etmenin yollarını bulmuşlardır.
WPBeginner olarak, binlerce kullanıcının WordPress sitesini güvence altına almasına ve XML-RPC'yi devre dışı bırakmasına yardımcı olduk. Teknik bilginize bağlı olarak farklı yollar izlenebileceğini gördük.
Örneğin, .htaccess dosyasına erişerek veya bir kod parçacığı ekleyerek XML-RPC'yi devre dışı bırakabilirsiniz. Bu arada, yeni başlayan biriyseniz, kodu düzenlemeye gerek kalmadan çekirdek dosyayı devre dışı bırakan bir eklenti var.
Bu makalede, farklı yöntemler kullanarak WordPress'te XML-RPC'yi nasıl kolayca devre dışı bırakacağınızı göstereceğiz.

WordPress'te XML-RPC Nedir?
XML-RPC, 2012'de yayınlanan WordPress 3.5'ten bu yana varsayılan olarak etkinleştirilmiş temel bir WordPress API'sidir. Geliştiricilerin, WordPress web sitenize bağlanmak ve onunla etkileşim kurmak için XML ve HTTPS protokollerini kullanmalarına olanak tanır.
Kısacası, blogunuzu uzaktan erişmek ve yayınlamak için XML-RPC'nin etkinleştirilmesi gerekir; örneğin, mobil bir uygulamayı sitenizi yönetmek için kullanmak veya Uncanny Automator veya Zapier gibi otomasyon hizmetlerine bağlanmak istediğinizde.
Ancak, web sitenizle mobil uygulamaları kullanmıyorsanız, bazı WordPress güvenlik uzmanları XML-RPC'yi devre dışı bırakmanızı önerebilir. Bu, web sitenizi hacklemek için potansiyel olarak istismar edilebilecek bir kapıyı kapatır.
Bununla birlikte, XML-RPC API'sini WordPress'te nasıl kolayca devre dışı bırakacağınıza bir göz atalım. .htaccess yöntemi en iyisidir çünkü en az kaynak yoğunluklu olanıdır ve diğer yöntemler yeni başlayanlar için daha kolaydır.
Yöntem 1: WordPress XML-RPC'yi .htaccess ile Devre Dışı Bırakma (Gelişmiş)
Bu yöntem ileri düzey kullanıcılar içindir çünkü sitenizin .htaccess dosyasını düzenlemenizi gerektirir. Yeni başlayanların Yöntem 2 veya 3'ü kullanmasını öneririz.
Bu yöntemin, kendinize ve ekibinize uzaktan erişim verme ve diğer herkesi kısıtlama yeteneği gibi birçok avantajı vardır. Ayrıca, XML-RPC isteklerini WordPress'e iletilmeden önce devre dışı bıraktığı için WordPress performansınızı olumsuz etkilemez.
Aşağıdaki kodu .htaccess dosyanıza eklemeniz gerekecektir. Bunu, sitenize bir FTP istemcisi veya dosya yöneticisi kullanarak bağlanarak yapabilirsiniz. Ayrıca, All in One SEO kullanıcıları, aşağıdaki ekran görüntüsünde görebileceğiniz gibi, eklentinin yerleşik düzenleyici aracını kullanarak kod parçacığını ekleyebilirler.
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 123.123.123.123
</Files>

Sitenize belirli bir kullanıcıya uzaktan erişim vermek istiyorsanız, 5. satırdaki '123.123.123.123' yerine IP adresini girin. Birden fazla IP adresini boşluklarla ayırarak ekleyebilirsiniz.
Veya, XML-RPC'yi tamamen devre dışı bırakmak istiyorsanız, 5. satırı tamamen silin.
Not: .htaccess'i bulamıyorsanız, WordPress'te .htaccess dosyasını neden bulamadığınıza dair kılavuzumuza bakın.
Yöntem 2: WordPress XML-RPC'yi Kod Parçacığı ile Devre Dışı Bırakma (Önerilen)
Bu yöntem, WordPress web sitenize bazı kodlar eklemenizi gerektirir. Bunu daha önce yapmadıysanız, WordPress'te özel kod parçacıklarını nasıl kopyalayıp yapıştıracağınıza dair rehberimize göz atın.
WPCode, WordPress sitenize kod eklemenin en kolay ve en güvenli yoludur. Kod parçacıklarınızı yönetmenize yardımcı olur ve sitenizi bozan herhangi bir hatayı önler.
In this method, we will use one of WPCode’s built-in code snippets to disable XML-RPC.
Öncelikle, ücretsiz WPCode eklentisini yüklemeniz gerekir. Adım adım talimatlar için, bir WordPress eklentisinin nasıl kurulacağına dair adım adım kılavuzumuza göz atın.
Etkinleştirildikten sonra Kod Parçacıkları » Parçacık Ekle bölümüne gidin. WPCode kütüphanesinde XML-RPC'yi devre dışı bırakan bir parçacık zaten bulunmaktadır. Bunu 'xml' diye aratarak bulabilirsiniz.
Bulduğunuzda, 'Snippet kullan' düğmesine tıklamanız gerekir.

Ardından, ‘Aktif’ geçişini ‘Açık’ konumuna getirmeniz gerekir.
Son olarak, kod parçasını sitenizde etkinleştirmek ve XML-RPC API'sini devre dışı bırakmak için 'Güncelle' düğmesine tıkladığınızdan emin olun.

Yöntem 3: Bir Eklenti ile WordPress XML-RPC'yi Devre Dışı Bırakma
Bu, web sitenize bir kod parçacığı eklentisiyle başka özelleştirmeler eklemek istemiyorsanız kullanılabilecek basit bir yöntemdir
Sadece Disable XML-RPC-API eklentisini kurun ve etkinleştirin. Daha fazla ayrıntı için, bir WordPress eklentisinin nasıl kurulacağına dair adım adım kılavuzumuza bakın.
Eklenti kutudan çıktığı gibi çalışır ve XML-RPC'yi hemen devre dışı bırakır.
Eklentiyi yapılandırmak için XML-RPC Güvenliği » XML-RPC Ayarları'na gidebilirsiniz. Örneğin, IP adreslerini beyaz listeye alarak belirli kullanıcıların XML-RPC'ye erişmesine izin verebilirsiniz.

WordPress XML-RPC'nin Devre Dışı Olduğunu Test Etme
Şimdi WordPress web sitenizde XML-RPC API'yi başarıyla devre dışı bıraktığınızdan emin olmak için kontrol etmelisiniz.
Ayrıca, tarayıcınızda http://example.com/xmlrpc.php URL'sini ziyaret ederek XML-RPC'nin devre dışı bırakıldığını kontrol edebilirsiniz. ‘example.com’ yerine kendi web sitenizin alan adını değiştirdiğinizden emin olun.
XML-RPC devre dışı bırakılırsa şu hata mesajını görmelisiniz: ‘Yasak: Bu kaynağa erişim izniniz yok.’
Bu makalenin, WordPress'te XML-RPC'yi nasıl kolayca devre dışı bırakacağınızı öğrenmenize yardımcı olduğunu umuyoruz. Ayrıca, WordPress'e JavaScript'in nasıl kolayca ekleneceği ve en iyi WordPress geliştirme araçları hakkındaki rehberimize de göz atmak isteyebilirsiniz.
Bu makaleyi beğendiyseniz, lütfen WordPress video eğitimleri için YouTube Kanalımıza abone olun. Bizi ayrıca Twitter ve Facebook'ta da bulabilirsiniz.


Jiří Vaněk
Kod parçacığı için teşekkürler. Sonunda, XML-RPC'yi WPCode kullanarak devre dışı bıraktım çünkü bu en kolay yol gibi görünüyordu ve XML-RPC'yi kolayca geri alabilirim. Harika!
Pete Mason
htaccess'te, şu satır:
allow from 123.123.123.123
IP adresimle düzenlenmesi gerektiğini gösteriyor gibi. Ancak bu hiçbir yerde belirtilmemiş —?
Christine
Devre dışı bırakma ve engelleme arasında bir fark var mı?
WPBeginner Desteği
Engelleme, özelliğe erişimi sınırlamaya çalışırken, devre dışı bırakma tamamen kapatacaktır. Devre dışı bırakırsanız, birinin farklı bir yöntemle erişmesi konusunda endişelenmenize gerek kalmaz.
Yönetici
Rashmi K
Önerilen XML-RPC'yi Devre Dışı Bırak eklentisi son 2 yıldır güncellenmedi. Eklentinin wordpress'in son 3 sürümüyle test edilmediği belirtiliyor.
WPBeginner Desteği
For our stance on the not tested warning, you would want to take a look at our article below:
https://www.wpbeginner.com/opinion/should-you-install-plugins-not-tested-with-your-wordpress-version/
Yönetici
Nikhil
Merhaba,
xmlrpc.php erişimini devre dışı bırakmak, android/ios uygulama geliştirme için kullanılan wordpress api'lerine erişimi de devre dışı bırakacak mı?
WPBeginner Desteği
Bu, uygulamaların kendileri tarafından kullanılan API'ye bağlı olacaktır.
Yönetici
Vyom
Çözüm bulundu: nginx yapılandırmasına aşağıdaki bilgilerin eklenmesi: # nginx bloğu xmlrpc.php istekleri location /xmlrpc.php { deny all; }
Vyom
Apache yerine Nginx kullanıyorum. Sitemde hala .htaccess kullanabilir miyim?
Ve bu dosyayı public_html dizinine mi yoksa bir seviye üstüne mi kaydetmeliyim?
WPBeginner Desteği
nginx kullanıyorsanız htaccess kullanamazsınız
Yönetici
Vyom
Cevap için teşekkürler. Peki nginx için bir alternatif var mı?
WPBeginner Desteği
Siteye özgü eklentiyi veya makalenin önceki bölümündeki eklentiyi ekleyeceksiniz.
Chinecherem Somto
Merhaba, kodu yapıştıracağım yer web sitesinin kök dizinindeki .htaccess dosyası mı?
WPBeginner Desteği
Yes, the .htaccess in your site’s root folder is where you would add the .htaccess code
Yönetici
Mojtaba Rezaeian
Teşekkürler yazar.
WPBeginner Desteği
You are welcome Mojtaba
Yönetici
Bapi
Birden fazla ip veya 123.123.123.1, 2, 3, …… 100,101 gibi bir ip aralığı nasıl kullanılır
malcolm
neden 123.123.123.123'e izin verelim?
Hizmeti hiç kullanmıyorsak, neden “hepsini reddet” mutlak olmasın?
Edward
Eğer kodu doğru okuyorsam;
order deny,allow – deny'i allow'dan önce koyar, çünkü deny 'hepsi' olduğundan allow işlenmez
deny from all – dediği şeyi yapar
allow from 123.123.123.123 – bir yer tutucudur
Sabit bir IP adresiniz varsa, sırayı “izin ver, reddet” olarak değiştirebileceğinizi ve 123.123.123.123 yerine kendi IP adresinizi koyabileceğinizi anlıyorum. Bu, IP adresinize izin verir, diğer tüm IP adreslerini reddeder.
David Hoy
Thanks WP-Beginner, I’m trying to be baddest WP boy in my neighbourhood and this is exactly why I keep coming back to you guys, each question I have you say; here is the easy way, and here is the RIGHT way
Ben ve .htaccess dosyam, htpasswrd ve müşterilerimin asla ihtiyaç duymayacağı bu XMLRPC şeyi hakkında küçük bir sohbet edeceğiz.
Hepiniz ağımın bir köşesini biraz daha güvenli hale getirdiniz, MailChimp'in dediği gibi: Yüksek Beşler!
WPBeginner Desteği
Merhaba David,
Thanks for the kind words. We are glad you find WPBeginner helpful
Yönetici
Cezar
Tamam, bu kodu kullanacağım ama IFTTT'nin web sitemde çalışmasını istiyorum, ne eklemem gerekiyor?
# WordPress xmlrpc.php isteklerini engelle
order deny,allow
deny from all
allow from 123.123.123.123
PhilB
Merhaba,
xmlrpc.php dosyasını .htaccess kullanarak engelleme talimatlarını izledim ancak çalıştığından emin değilim.
Wordfence güvenlik kullanıyorum ve canlı trafik görünümünde xmlrpc.php dosyası için gelen isteklerin durduğunu görebiliyorum, ancak erişim günlüklerimi kontrol edersem
tail -f /apache2/logs/access_log
İsteklerin geldiğini hala görebiliyorum, ancak sondaki kod 500'den 403'e değişti. WordFence eklentimden yanlış bir rapor aldığım ve hala spam ile dolup taştığım konusunda endişeliyim. Herhangi biri tavsiye verebilir mi?
Teşekkürler,
PhilB
David Hoy
Ah evet! Bu mükemmel çalışıyor, XMLRPC'niz YASAKLANMIŞ!
HTTP Durum Kodu 403: Sunucu isteği anladı ancak yetkilendirmeyi reddediyor.
Raymundo
Garip bir sorunum var...
WordPress bloglarımı IFTTT ile kullanıyordum ve her şey yolunda gidiyordu, ta ki MaxCDN ile entegre edene kadar; IFTTT hemen çalışmayı durdurdu. Biraz araştırma yaptım ve sorun XML-RPC'nin devre dışı bırakılmasıyla ilgili olabilir.
Kontrol panelimde “Ayarlar” > “Yazma” bölümünde XML-RPC, Uzaktan Yayınlama vb. gibi hiçbir şey görmüyorum. Veritabanını seçeneklerde kontrol ettim, ayrıca xml-rpc mevcut değil / eksik.
IFTTT'nin çalışmaya devam etmesi için XML-RPC'yi etkinleştirmem gerekiyor.
XML-RPC'yi nasıl yeniden etkinleştirebilirim; ihtiyacım olan tek şey, XML-RPC'yi etkinleştirmek için .htaccess veya functions.php'ye ekleyebileceğim bir betik.
Ve neden kontrol panelimde XML-RPC işlevselliği eksik?
Teşekkürler!
Muhammad Ammar Ashfaq
WordPress'ime bu dosyayı xmlprc.php nasıl ekleyeceğimi araştırıyordum, 4.5.3 sürümünü kullanıyorum ve bu sayfaya geldim. Jetpack'i etkinleştirdiğimde site_inaccessible hatası aldığım için bu php dosyasını eklemem gerekiyor. Sitemin bu hatayı nasıl çözeceğini lütfen bana söyleyin
WPBeginner Desteği
FTP istemcisi veya cPanel'deki Dosya Yöneticisi'ni kullanarak WordPress sitenize bağlanın. Web sitenizin kök dizininde xmlrpc.php dosyasını arayın. Eğer oradaysa, 2. adımı deneyin. Değilse, WordPress'in yeni bir kopyasını indirin. Sıkıştırın ve açın ve xmlrpc.php dosyasını sitenizin kök dizinine geri yükleyin.
Adım 2: XML-RPC'yi devre dışı bırakan kodu bulmak için WordPress temanızın functions dosyasını kontrol edin.
Adım 3: .htaccess ve wp-config dosyalarınızı kontrol edin.
Yönetici
omonaija
Lütfen, sitemde xmlrpc'yi etkinleştirmek için ne yapabilirim? çünkü akıllı telefonumdaki wordpress mobil uygulamasını kullanarak giriş yapamıyorum..
WPBeginner Desteği
WordPress sitenizde bir güvenlik eklentisi kullanıyorsanız, ayarlarını kontrol edin.
Yönetici
Mook
Harika! Bu WP filtresi script kiddie saldırısını düzeltti. Kişiyi hala güvenlik duvarından geçirdim, ancak daha fazla IP'yi güvenlik duvarına eklemek için günlükleri kartal gibi izlemek zorunda değilim. TEŞEKKÜRLER.
WPBeginner Desteği
Bu yüzden Sucuri kullanıyoruz.
Yönetici
Alex
Bunun nedeni Sucuri'nin Disable XMLRPC eklentisi gibi davranması mı?
Öyleyse XMLRPC'yi Devre Dışı Bırak eklentimi kaldırabilirim,
Teşekkürler
Alex
WPBeginner Desteği
Sucuri, siteniz ile kullanıcılar arasında bir güvenlik duvarı gibi davranır. Şüpheli herhangi bir etkinliği web sitenize ulaşmadan engeller.
Chad
xmlrpc.php dosyasını sunucu genelinde /etc/httpd/conf/includes/pre_main_global.conf dosyamda devre dışı bırakmaya tamamen katılıyorum. Ancak aklıma şu sorular takılıyor… belirli bir eklentinin çalışması için xmlrpc.php'ye “İHTİYACI” olup olmadığını belirlemenin bir yolu var mı? Erişimi engellemek ve 2 ay sonra bir sorunla karşılaşmak ve sorunun daha önce xmlrpc.php'yi engellemiş olmamdan kaynaklandığını bilmemek konusunda endişelerim var.
Bir log dosyasında veya benzeri bir yerde, xmlrpc.php engellemesinin neden olduğunu gösterecek yaygın işaretler var mı?
Soumitra
Merhaba, eklentiyi yükledim, XML-RPC'yi Devre Dışı Bırak
Bakalım!
Phranq
Hey am using WordPress app to post with my android smartphone. Now I can’t login and my login credentials are correct. The response I got was ” we can’t log you in couldn’t connect to the WordPress site”.Could you help me fix this WordPress app login error.
WPBeginner Desteği
XML-RPC'yi devre dışı bıraktıysanız, WordPress mobil uygulamasıyla giriş yapamayabilirsiniz. Bu kod için temanızın functions.php dosyasına bakın
add_filter('xmlrpc_enabled', '__return_false');1-click Use in WordPress
Varsa, kaldırmanız gerekir. Ayrıca eklentileri devre dışı bırakmayı ve WordPress mobil uygulamasıyla oturum açmanızı engelleyen eklentiyi bulana kadar tek tek etkinleştirmeyi deneyebilirsiniz.
Yönetici
Josiah
"123.123.123.123'ten izin ver" seçeneğinin isteğe bağlı olduğunu ve kullanıldığında IP adresinizi veya xmlrpc.php'ye erişmesi gereken cihazın IP adresini içerecek şekilde güncellenmesi gerektiğini belirtmekte fayda var (bu makalede örnekler vermek iyi olur).
Natalie
GoodbyeCaptcha eklentisini XML-RPC'yi kapatmak için kullanıyorum ve Jetpack etkinleştirildiğinde sorunsuz çalışıyor.
Umarım yardımcı olur
ATI
Üzgünüm, bu yöntemi defalarca denedim. Benim için işe yaramadı – aslında bu kodları .htaccess dosyasına ekledikten sonra ön yüzü kapattı (ziyaretçilerin web sayfasına erişimini engelledi).
Gretchen Louise
Bunu bu şekilde devre dışı bırakmak bu sorunu önler mi? http://theaffluentblogger.com/operating-a-website/wordpress-xmlrpc-php-vulnerability-affects-shared-hosting-sites/ Bir arkadaşımın sitesi, xmlrpc dosyasına yapılan saldırılar nedeniyle sürekli çöküyor.
Yayın Kadrosu
Evet, saldırıyı bir dereceye kadar önleyecektir.
Yönetici
Christopher Ross
Keith, there’s a trend in WordPress to move non-theme related functions out of the functions.php file and into a “site specific plugin”, basically a plugin that you only activate on one unique website and it stores the non-theme related functions for that site.
Kodu functions.php dosyanıza yerleştirerek aynı şeyi başarabilirsiniz.
Keith Davis
Teşekkürler Chris
Anlaşılan sizler zaten halletmişsiniz.
https://www.wpbeginner.com/beginners-guide/what-why-and-how-tos-of-creating-a-site-specific-wordpress-plugin/
Bu arada – yorum sisteminize ne oldu?
Livefyre idi, sonra Twitter ve Facebook ile ilgili bir şeydi ve şimdi?
Keith Davis
Selam Millet
Biraz kalın kafalı olduğum için üzgünüm ama şunu genişletebilir misiniz… “Tek yapmanız gereken aşağıdaki kodu siteye özel bir eklentiye yapıştırmak:”
Hangi eklentiler siteye özeldir?