WordPress'te XML-RPC Nasıl Devre Dışı Bırakılır?
Yayınlanan: 2022-09-19xmlrpc.php dosyasını ve onu WordPress'te nasıl devre dışı bırakabileceğinizi araştırıyor musunuz? Bu makale, xmlrpc.php'nin ne olduğunu ve onu nasıl devre dışı bırakabileceğinizi açıklayacaktır.
WordPress ortamı dışındaki uygulamalardan XML-RPC belirtimi aracılığıyla WordPress ile iletişim, sistemler arasında bir iletişim yöntemini standartlaştırarak mümkündür.
Başlangıcından bu yana, bu spesifikasyon WordPress topluluğu için çok değerli olmuştur. O olmasaydı, WordPress internetin geri kalanından izole edilmiş olurdu.
Ancak, xmlrpc.php'nin bazı dezavantajları da vardır. WP REST API, xmlrpc.php dosya güvenlik açıkları keşfedildiğinden beri WordPress'in hayati bir bileşeni haline geldi. Bu, WordPress'in diğer yazılım programlarıyla nasıl etkileşime girdiğini büyük ölçüde geliştirir.
Bu makalenin amacı, xmlrpc.php'nin ne olduğunu, neden devre dışı bırakılması gerektiğini ve nasıl devre dışı bırakabileceğinizi açıklamaktır.
Ayrıca en iyi WordPress güvenlik eklentileri hakkındaki makalemize de göz atmanızı öneririz.
xmlrpc.php dosyası nedir?
Bu bölümün amacı XML-RPC PHP nedir sorusuna cevap vermektir. XML-RPC özelliği, WordPress ve diğer sistemler arasında iletişim kurmak için kullanılabilir.
HTTP'yi aktarım protokolü ve XML'i kodlama protokolü olarak kullanan XML-RPC, bu iletişimlerde kullanılan protokolleri standartlaştırabilir.
WordPress, arayüz olarak XML-RPC kullanan b2 blog yazılımından 2003 yılında çatallandı. xmlrpc.php adlı bir dosya sistemin kök dizininde bulunur ve bu özelliğin kodunu içerir. Bu dosya, XML-RPC'nin esas olarak eski olmasına rağmen hala mevcuttur.
WordPress'in ilk sürümlerinde XML-RPC'yi devre dışı bırakmak varsayılan ayardı. 3.5 sürümünden bu yana, WordPress mobil uygulamanız ve WordPress kurulumunuz arasındaki iletişimi desteklemek için varsayılan olarak etkinleştirilmiştir.
WordPress sürüm 3.5'ten önce, WordPress mobil uygulaması yalnızca siteniz XML-RPC ile yapılandırılmışsa içerik yayınlayabilirdi. Bunun nedeni, uygulamanın WordPress çalıştırmamasıdır; bunun yerine, xmlrpc.php kullanarak WordPress sitenizle iletişim kurdu.
Ek olarak, XML-RPC, WordPress ile diğer blog platformları arasında ve WordPress ile WordPress mobil uygulaması arasında iletişim kurmak için kullanılır.
XML-RPC, pingback ve geri izleme için kullanılabilir. Ayrıca, kendi kendine barındırılan WordPress sitelerinin WordPress.com üyesi olmasını mümkün kılan Jetpack eklentisi için arka uç görevi gördü.
REST API artık WordPress çekirdeğine entegre edildiğinden, artık xmlrpc.php dosyasını kullanmıyoruz. Bu dosyayı kullanmak yerine artık WordPress'in mobil uygulaması, masaüstü istemcileri, Jetpack eklentisi ve diğer sistem ve hizmetler ile REST API kullanarak iletişim kurabilirsiniz.
REST API'yi daha geniş bir sistem yelpazesiyle entegre etmek de mümkündür ve esnekliği xmlrpc.php'den daha fazladır. XML-RPC'nin yerini REST API'leri aldığından, sorun yaşamamak için web sitenizde xmlrpc.php'yi devre dışı bırakmalısınız.
Neden XML-RPC'yi devre dışı bırakmalısınız?
xmlrpc.php dosyasının WordPress sitenizin XML-RPC etkin güvenlik açığını bilgisayar korsanlarına maruz bırakabileceğinin farkında olmalısınız, bu nedenle devre dışı bırakmalısınız.
WordPress dışındaki iletişimler için XML-RPC kullanımı artık gerekli değildir. Sitenizi olabildiğince güvenli tutmak istiyorsanız, devre dışı bırakmalısınız.
Bu nedenle WordPress her zaman geriye dönük uyumlu olacaktır. Eğer siz sorumluysanız, WordPress web siteleriyle ilişkili WordPress eklentilerini ve temalarını sürekli olarak güncellemelisiniz.
Web sitenizde XML-RPC etkinse, bir bilgisayar korsanı bunu web sitenize bir DDoS saldırısı başlatmak için bir araç olarak kullanabilir. Sitenize çok sayıda pingback oluşturmak için xmlrpc.php modülünü kullanabilirler, bu da sunucuyu aşırı yükleyebilir ve web sitesinin kapanmasına neden olabilir.
Ayrıca, xmlrpc.php ayrıca her istekte kimlik doğrulama bilgisi gönderir, böylece bilgisayar korsanları bu bilgileri ele geçirebilir ve web sitenize erişmeye çalışmak için kullanabilir. Bu kaba kuvvet saldırısı, bilgisayar korsanlarının kötü amaçlı kod yürütmesine, kodu silmesine ve hatta veritabanınıza zarar vermesine izin verebilir.
XML-RPC'nin etkin olup olmadığı nasıl kontrol edilir?
Web sitesine erişmek için lütfen aşağıdaki bağlantıya tıklayın: WordPress XML-RPC Validation Service.
Alan adınızı girdikten sonra Kontrol Et düğmesine tıklayın.
Test başarılı olursa, hemen kapatılması gereken XML-RPC şimdi etkinleştirilecektir.
WordPress Eklentilerini Kullanarak XMLRPC'yi Devre Dışı Bırakın
Site sahipleri çeşitli nedenlerle XMLRPC işlevini devre dışı bırakmak isteyebilir. Bunu yapmak için XML-RPC'yi Devre Dışı Bırak gibi çeşitli eklentileri kullanabilirsiniz.
XML-RPC Eklentisini Devre Dışı Bırak'ı kullanarak XMLRPC'yi devre dışı bırakın
XMLRPC işlevini devre dışı bırakmak için Disable XML-RPC Plugin'in nasıl kullanılacağını açıklıyoruz. Lütfen WordPress yönetim panelinize giriş yapın.
1. Eklentiler'e ve ardından Yeni Ekle'ye tıklayın.
2. Arama kutusuna “XML-RPC'yi Devre Dışı Bırak” yazın. Bundan sonra Disable XML-RPC eklentisini yükleyin.
3. Eklentiyi etkinleştirin ve gitmeye hazırsınız. Ardından, XML-RPC devre dışı bırakılır.
Bu eklentide, XML-RPC'nin devre dışı bırakılıp bırakılmadığını kontrol etmek için kullanılabilecek bir XML-RPC Doğrulayıcı bulabilirsiniz. XML-RPC'nin devre dışı bırakılması durumunda bir hata mesajı görünecektir. Değilse, bu eklenti ile devre dışı bırakabilirsiniz.
Bir Eklenti ile XML-RPC ve REST API Etkinleştirmesini Yapılandırın
REST XML-RPC Veri Denetleyicisi eklentisi, web sitenizdeki REST API'sini ve xmlrpc.php'yi daha ayrıntılı bir şekilde yapılandırmanıza olanak tanır.
Eklentiyi kurup etkinleştirdikten sonra ayarlarda REST XML-RPC Data Checker sekmesine tıkladıktan sonra XML-RPC sekmesine tıklayın.
Eklenti aracılığıyla, sitenizde xmlrpc.php'nin hangi özelliklerinin etkinleştirildiğini tam olarak belirtebilirsiniz. Tamamen devre dışı bırakmak da mümkündür. Eklentide, isterseniz REST API'sini kontrol etmenize izin veren bir sekme de vardır.
Eklenti Olmadan XMLRPC'yi Devre Dışı Bırak
Web sitenize başka bir eklenti eklememeyi tercih ederseniz, bir filtre veya .htaccess dosyanızı kullanarak xmlrpc.php'yi devre dışı bırakabilirsiniz. Her iki seçeneği de birlikte ele alalım.
Bir Filtre aracılığıyla xmlrpc.php'yi devre dışı bırakın
xmlrpc_enabled filtresini kullanarak, xmlrpc.php'yi devre dışı bırakmak çok kolaydır. Bu işlevi eklemeli ve web sitenizde aktif hale getirmelisiniz:
add_filter( 'xmlrpc_enabled', '__return_false' );
İşlev, temanın işlevler dosyasına eklenebilir. Bir .htaccess dosyası, Apache kullanan bir barındırma sağlayıcısına bağlı olmanıza bağlı olarak cPanel veya FTP kullanılarak da düzenlenebilir.
WordPress'in __return_false işlevi, boolean false koşulunu döndürür. Bu filtre yalnızca oturum açmış bir kullanıcı gerektiren işlemleri engeller.
XMLRPC sunucusunun tüm işlemlerini devre dışı bırakmak için tüm yöntemlerden kaydının silinmesi gerekir. Bunu başarmak için xmlrpc_methods filtresine bağlanmanız gerekir.
add_filter( 'xmlrpc_methods', 'betterstudio_remove_xmlrpc_methods' ); function 'betterstudio_remove_xmlrpc_methods( $methods ) { $methods = array(); //empty the array return $methods; }
xmlrpc.php dosyası, bir istek yapıldığında wp_xmlrpc_server sınıfının bir nesnesini oluşturur. wp-includes klasörü içinde, yöntemler adı verilen bir özelliği içeren bir sınıf dosyası bulunur.
Methods özelliği, XML-RPC istekleri aracılığıyla erişilebilen bir dizi işlev adı içerir.
İşlev, bu diziye dahil edilmediğinde bir hata mesajıyla döndürülür. Böylece diziyi boşaltırsanız hiçbir işlevi kullanamayacağınızdan emin olursunuz.
.htaccess kullanarak XML-RPC'yi devre dışı bırakın
.htaccess kullanarak XML-RPC'yi devre dışı bırakmak birkaç basit adımı içerir. xmlrpc.php .htaccess'i şu şekilde devre dışı bırakabilirsiniz:
- Web sitenizin kök dizinine gitmek için FTP veya Dosya Yöneticisini kullanabilirsiniz.
- .htaccess dosyasını açmalısınız.
- .htaccess dosyanıza aşağıdaki kodu eklemeniz gerekecek:
# Block WordPress xmlrpc.php requests <Files xmlrpc.php> order deny,allow deny from all allow from xxx.xxx.xxx.xxx </Files>
xxx.xxx.xxx.xxx, xmlrpc.php'ye erişim vermek istediğiniz IP adresiyle değiştirilebilir. WordPress'ten xmlrpc.php'yi tamamen kaldırmak istiyorsanız, bu satırı kaldırabilirsiniz.
Apache/Nginx'te XMLRPC'yi devre dışı bırakın
Apache/Nginx'te XMLRPC'yi devre dışı bırakmak da basit bir işlem olabilir. xmlrpc.php'yi devre dışı bırakmak için Apache yapılandırma dosyasına aşağıdaki kod eklenmelidir:
< VirtualHost > ---------- < files xmlrpc.php > order allow,deny deny from all < /files > < /VirtualHost >
Nginx yapılandırma dosyasında aşağıdaki kodu kullanarak xmlrpc.php'yi devre dışı bırakabilirsiniz:
server { ----------- location /xmlrpc.php { deny all; } }
Farklı Linux dağıtımlarında XML-RPC saldırıları nasıl aranır ve bulunur?
Farklı Linux dağıtımlarında XML-RPC saldırıları arıyorsanız, xmlrpc.php saldırılarını durdurmak için aşağıdaki komutları kullanabilirsiniz:
Apache'nin kurulu olduğu bir CentOS sunucusu:
# grep xmlrpc /var/logs/httpd/access.log
Ubuntu'da Apache ile:
# grep xmlrpc /var/logs/apache2/access.log
Nginx tabanlı sunucular için:
# grep xmlrpc /var/logs/nginx/access.log
cPanel tabanlı sunucular için:
# grep xmlrpc /home/username/logs/access.log
Saldırı altındaki bir WordPress sitesinde önceki komutlar yürütülürse aşağıdaki çıktıyı alırsınız:
POST /xmlrpc.php HTTP/1.0” 200 674 “-” “Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)
XML-RPC.php dosyası ne zaman etkin tutulmalı?
XML-RPC'yi etkinleştirmenin avantajlı olacağı birkaç durum vardır ve bunlar bunlardan bazılarıdır:
- Herhangi bir nedenle sürüm 4.4 veya daha yüksek sürüme güncellenemeyen eski bir web siteniz olduğunda REST API kullanılamıyorsa.
- Bir program, onunla iletişim kurmak için kullandığınız web sitesindeki REST API'sine erişemez.
- Çalışması için XML-RPC gerektiren bazı üçüncü taraf uygulamaları entegre etmek için.
Bununla birlikte, yukarıdaki eleştirilerin hiçbirinin XML-RPC ve xmlrpc.php istismarını kullanmaya devam etmek için yeterli nedenler olmadığına dikkat edilmelidir.
WordPress'in sahip olmasının tek nedeni geriye dönük uyumlu olmasıdır; Sonuç olarak, yalnızca eski bir WordPress sürümü kullanıyorsanız kullanmak isteyeceksiniz.
Sitelerini güncel tutmak ve en son yazılım sürümünü desteklemek isteyenler için xmlrpc.php devre dışı bırakılmalıdır.
WordPress'te XML-RPC İşlevselliğini Test Etme
Ek olarak, web sitenizin XML-RPC isteklerini almasının başarıyla devre dışı bırakıldığını doğrulamak için WordPress test seçeneğini kullanabilirsiniz.
Bu amaçla WordPress Mobil Uygulamasını telefonunuza indirebilirsiniz. Bu uygulamanın Android ve iPhone sürümleri mevcuttur. Uygulamayı cihazınıza yükledikten sonra, kullanmaya başlamak için Mevcut site adresinizi girin üzerine dokunun.
Bu sitede XML-RPC hizmetlerinin devre dışı bırakıldığı hata mesajını görürseniz işleminiz tamamlanmıştır. Bu bir WordPress xmlrpc.php 403 yasak mesajıdır.
Çözüm
XML-RPC spesifikasyonu, harici uygulamalar ve sistemlerle iletişime izin vermek için WordPress'in oluşturulmasından önce geliştirilmiştir. Bu spesifikasyonda, web sitenizi saldırılara karşı savunmasız hale getirebilecek çeşitli güvenlik kusurları bulunmaktadır.
REST API, sitenizin diğer programlarla iletişim kurmasını sağlayarak xmlrpc.php'yi endişe duymadan devre dışı bırakmayı mümkün kılar. Web sitenizin güvenliğini artırmak istiyorsanız, bunu yapmak için belirtilen adımları izleyin.