Cum se dezactivează XML-RPC în WordPress?

Publicat: 2022-09-19

Căutați despre fișierul xmlrpc.php și cum îl puteți dezactiva în WordPress? Acest articol va explica ce este xmlrpc.php și cum îl puteți dezactiva.

Comunicarea cu WordPress din aplicații din afara mediului WordPress prin specificația XML-RPC este posibilă prin standardizarea unei metode de comunicare între sisteme.

De la origine, această specificație a fost de mare valoare pentru comunitatea WordPress. Fără el, WordPress ar fi fost izolat de restul internetului.

Cu toate acestea, xmlrpc.php are și unele dezavantaje. API-ul WP REST a devenit o componentă vitală a WordPress de când au fost descoperite vulnerabilități ale fișierului xmlrpc.php. Acest lucru îmbunătățește foarte mult modul în care WordPress interacționează cu alte programe software.

Scopul acestui articol este de a explica ce este xmlrpc.php, de ce ar trebui să fie dezactivat și cum îl puteți dezactiva.

De asemenea, vă sugerăm să verificați articolul nostru despre cele mai bune pluginuri de securitate WordPress.

Ce este fișierul xmlrpc.php?

Scopul acestei secțiuni este de a răspunde la întrebarea Ce este XML-RPC PHP? Specificația XML-RPC poate fi utilizată pentru a comunica între WordPress și alte sisteme.

Folosind HTTP ca protocol de transport și XML ca protocol de codificare, XML-RPC ar putea standardiza protocoalele utilizate în aceste comunicații.

WordPress a fost transformat în 2003 din software-ul de blogging b2, care folosea XML-RPC ca interfață. Un fișier numit xmlrpc.php se află în directorul rădăcină al sistemului și conține codul pentru această caracteristică. Acest fișier este încă disponibil chiar dacă XML-RPC este în principal învechit.

A fost setarea implicită în versiunile inițiale ale WordPress pentru a dezactiva XML-RPC. Începând cu versiunea 3.5, a fost activat în mod implicit pentru a accepta comunicarea între aplicația dvs. mobilă WordPress și instalarea dvs. WordPress.

Înainte de versiunea WordPress 3.5, aplicația mobilă WordPress putea posta conținut numai dacă site-ul dvs. era configurat cu XML-RPC. Acest lucru a fost cauzat de faptul că aplicația nu rula WordPress; în schimb, a comunicat cu site-ul dvs. WordPress folosind xmlrpc.php.

În plus, XML-RPC este folosit pentru a comunica între WordPress și alte platforme de blogging și între WordPress și aplicația mobilă WordPress.

XML-RPC poate fi folosit pentru pingback și trackback. De asemenea, a servit ca backend pentru pluginul Jetpack, ceea ce a făcut posibil ca site-urile WordPress găzduite de sine să devină membri WordPress.com.

Deoarece API-ul REST a fost acum integrat în nucleul WordPress, nu mai folosim fișierul xmlrpc.php. În loc să utilizați acest fișier, acum puteți comunica cu aplicația mobilă WordPress, clienții desktop, pluginul Jetpack și alte sisteme și servicii folosind API-ul REST.

De asemenea, este posibil să se integreze REST API cu o gamă mai largă de sisteme, iar flexibilitatea sa este mai mare decât cea a xmlrpc.php. Deoarece XML-RPC a fost înlocuit cu API-urile REST, trebuie să dezactivați xmlrpc.php pe site-ul dvs. web pentru a evita probleme.

De ce ar trebui să dezactivați XML-RPC?

Ar trebui să știți că fișierul xmlrpc.php poate expune hackerilor vulnerabilitatea XML-RPC activată a site-ului dvs. WordPress, așa că trebuie să-l dezactivați.

Utilizarea XML-RPC nu mai este necesară pentru comunicațiile în afara WordPress. Dacă doriți să vă păstrați site-ul cât mai sigur posibil, ar trebui să îl dezactivați.

Din acest motiv, WordPress va fi întotdeauna compatibil cu versiunea inversă. Ar trebui să actualizați în mod constant pluginurile și temele WordPress asociate site-urilor web WordPress dacă sunteți responsabil pentru acestea.

Dacă XML-RPC este activat pe site-ul dvs. web, un hacker îl poate folosi ca instrument pentru a lansa un atac DDoS pe site-ul dvs. Ei pot folosi modulul xmlrpc.php pentru a genera multe pingback-uri către site-ul dvs., ceea ce poate supraîncărca serverul și poate duce la defectarea site-ului.

Mai mult, xmlrpc.php trimite, de asemenea, informații de autentificare cu fiecare solicitare, astfel încât hackerii pot intercepta aceste informații și le pot folosi pentru a încerca să acceseze site-ul dvs. Acest atac cu forță brută poate permite hackerilor să execute cod rău intenționat, să ștergă cod și chiar să vă deterioreze baza de date.

Cum verific că XML-RPC este activat?

Vă rugăm să faceți clic pe următorul link pentru a accesa site-ul web: WordPress XML-RPC Validation Service.

După ce ați introdus numele domeniului, faceți clic pe butonul Verificare.

Verificați că xmlrpc este activat pe WordPress

Dacă testul a avut succes, XML-RPC va fi acum activat, care ar trebui să fie dezactivat imediat.

Dezactivați XMLRPC folosind pluginuri WordPress

Din diverse motive, proprietarii de site-uri ar putea dori să dezactiveze funcționalitatea XMLRPC. Puteți utiliza diverse plugin-uri, cum ar fi Disable XML-RPC, pentru a face acest lucru.

Dezactivați XMLRPC utilizând pluginul Disable XML-RPC

Vă explicăm cum să utilizați pluginul Disable XML-RPC pentru a dezactiva funcționalitatea XMLRPC. Vă rugăm să vă conectați la panoul de administrare WordPress.

1. Faceți clic pe Plugins și apoi Add New.

2. Introduceți „Dezactivați XML-RPC” în caseta de căutare. Instalați pluginul Disable XML-RPC după aceea.

Instalați un plugin nou în WordPress

3. Activați pluginul și sunteți gata de plecare. Apoi, XML-RPC este dezactivat.

Instalați pluginul Disable CML-RPC

În acest plugin, puteți găsi un validator XML-RPC care poate fi utilizat pentru a verifica dacă XML-RPC a fost dezactivat. În cazul în care XML-RPC a fost dezactivat, va apărea un mesaj de eroare. Dacă nu, îl puteți dezactiva cu acest plugin.

Configurați activarea XML-RPC și REST API cu un plugin

Pluginul REST XML-RPC Data Checker vă permite să configurați API-ul REST și xmlrpc.php pe site-ul dvs. într-un mod mai precis.

După ce ați instalat și activat pluginul, faceți clic pe fila XML-RPC după ce ați făcut clic pe fila REST XML-RPC Data Checker din setări.

Prin intermediul pluginului, puteți specifica exact ce caracteristici ale xmlrpc.php sunt activate pe site-ul dvs. De asemenea, este posibil să-l dezactivați complet. Există, de asemenea, o filă în plugin care vă permite să controlați API-ul REST dacă alegeți să faceți acest lucru.

Dezactivați XMLRPC fără un plugin

Dacă preferați să nu adăugați alt plugin pe site-ul dvs. web, puteți dezactiva xmlrpc.php folosind un filtru sau fișierul dvs. .htaccess. Să luăm în considerare ambele opțiuni împreună.

Dezactivați xmlrpc.php printr-un filtru

Folosind filtrul xmlrpc_enabled, este foarte ușor să dezactivați xmlrpc.php. Ar trebui să adăugați această funcție și să o activați pe site-ul dvs.:

 add_filter( 'xmlrpc_enabled', '__return_false' );

Funcția ar putea fi adăugată la fișierul de funcții al temei. Un fișier .htaccess poate fi, de asemenea, editat folosind cPanel sau FTP, în funcție de dacă sunteți conectat la un furnizor de găzduire folosind Apache.

Funcția __return_false a WordPress returnează condiția booleană falsă. Acest filtru blochează numai operațiunile care necesită un utilizator conectat.

Trebuie să fie anulat din toate metodele pentru a dezactiva toate operațiunile serverului XMLRPC. Pentru a realiza acest lucru, trebuie să vă conectați la filtrul xmlrpc_methods.

 add_filter( 'xmlrpc_methods', 'betterstudio_remove_xmlrpc_methods' ); function 'betterstudio_remove_xmlrpc_methods( $methods ) { $methods = array(); //empty the array return $methods; }

Fișierul xmlrpc.php creează un obiect din clasa wp_xmlrpc_server atunci când se face o solicitare. În folderul wp-includes se află un fișier de clasă care conține o proprietate numită metode.

Proprietatea methods include o serie de nume de funcții care pot fi accesate prin solicitări XML-RPC.

Funcția este returnată cu un mesaj de eroare atunci când nu este inclusă în această matrice. Astfel, dacă goliți matricea, sunteți sigur că nu veți putea folosi nicio funcție.

Dezactivați XML-RPC folosind .htaccess

Dezactivarea XML-RPC folosind .htaccess include câțiva pași simpli. Iată cum puteți dezactiva xmlrpc.php .htaccess:

  • Puteți utiliza FTP sau File Manager pentru a naviga la directorul rădăcină al site-ului dvs. web.
  • Ar trebui să deschideți fișierul .htaccess.
  • Va trebui să adăugați următorul cod în fișierul dvs. .htaccess:
 # 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 poate fi înlocuit cu adresa IP la care doriți să acordați acces la xmlrpc.php. Dacă doriți să eliminați complet xmlrpc.php din WordPress, puteți elimina această linie.

Dezactivați XMLRPC în Apache/Nginx

Dezactivarea XMLRPC în Apache/Nginx poate fi, de asemenea, un proces simplu. Următorul cod ar trebui adăugat la fișierul de configurare Apache pentru a dezactiva xmlrpc.php:

 < VirtualHost > ---------- < files xmlrpc.php > order allow,deny deny from all < /files > < /VirtualHost >

Folosind următorul cod din fișierul de configurare Nginx, puteți dezactiva xmlrpc.php:

 server { ----------- location /xmlrpc.php { deny all; } }

Cum căutați și găsiți atacuri XML-RPC în diferite distribuții Linux?

Dacă căutați atacuri XML-RPC în diferite distribuții Linux, puteți utiliza următoarele comenzi pentru a opri atacurile xmlrpc.php:

Un server CentOS cu Apache instalat:
 # grep xmlrpc /var/logs/httpd/access.log
Cu Apache pe Ubuntu:
 # grep xmlrpc /var/logs/apache2/access.log
Pentru serverele bazate pe Nginx:
 # grep xmlrpc /var/logs/nginx/access.log
Pentru serverele bazate pe cPanel:
 # grep xmlrpc /home/username/logs/access.log

Veți primi următoarele rezultate dacă comenzile anterioare ar fi executate pe un site WordPress care este atacat:

 POST /xmlrpc.php HTTP/1.0” 200 674 “-” “Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)

Când să păstrați fișierul XML-RPC.php activat

Există câteva situații în care ar fi avantajos să activați XML-RPC, iar acestea sunt câteva dintre ele:

  • Dacă API-ul REST nu este disponibil atunci când aveți un site web vechi care nu poate fi actualizat la versiunea 4.4 sau o versiune ulterioară, indiferent de motiv.
  • Un program nu poate accesa API-ul REST pe site-ul web pe care îl utilizați pentru a comunica cu acesta.
  • Pentru a integra unele aplicații terțe care necesită XML-RPC pentru a funcționa.

Trebuie remarcat, totuși, că niciuna dintre criticile de mai sus nu reprezintă motive suficiente pentru a continua să utilizați XML-RPC și xmlrpc.php exploit.

Singurul motiv pentru care WordPress îl are este că este compatibil cu versiunea inversă; ca urmare, veți dori să-l utilizați numai dacă utilizați o versiune învechită de WordPress.

Pentru cei care doresc să-și păstreze site-ul actual și să accepte cea mai recentă versiune de software, xmlrpc.php ar trebui să fie dezactivat.

Testarea funcționalității XML-RPC în WordPress

În plus, puteți utiliza opțiunea de testare WordPress pentru a verifica dacă site-ul dvs. web a fost dezactivat cu succes de la primirea solicitărilor XML-RPC.

În acest scop, puteți descărca aplicația mobilă WordPress pe telefon. Există versiuni pentru Android și iPhone ale acestei aplicații disponibile. După instalarea aplicației pe dispozitivul dvs., atingeți Introduceți adresa existentă a site-ului pentru a începe să o utilizați.

Ai terminat dacă vezi mesajul de eroare că serviciile XML-RPC sunt dezactivate pe acest site. Acesta este un mesaj WordPress xmlrpc.php 403 interzis.

Concluzie

Specificația XML-RPC a fost dezvoltată înainte de crearea WordPress pentru a permite comunicarea cu aplicații și sisteme externe. Există mai multe defecte de securitate în această specificație, care ar putea face site-ul dvs. vulnerabil la atacuri.

API-ul REST permite site-ului dvs. să comunice cu alte programe, făcând posibilă dezactivarea xmlrpc.php fără îngrijorare. Dacă doriți să creșteți securitatea site-ului dvs., urmați pașii menționați pentru a face acest lucru.