Recent am primit o întrebare de la un cititor pe care o auzim destul de des pe aici: „Cum dezactivez API-ul REST pe site-ul meu WordPress?” Și, sincer, este o preocupare validă.
Când a fost lansată versiunea 4.4 a WordPress cu JSON REST API, aceasta a deschis o lume de posibilități pentru dezvoltatori.
Cu toate acestea, pentru mulți proprietari de site-uri care nu au nevoie de aceste funcționalități avansate, API-ul poate părea o adăugare inutilă care, potențial, le expune site-ul la riscuri de securitate.
În acest articol, vă vom arăta cum să dezactivați cu ușurință JSON REST API în WordPress.

De ce să dezactivați JSON REST API în WordPress?
Nu se poate nega că API-ul are o mulțime de beneficii pentru dezvoltatorii WordPress. API-ul face extrem de ușoară preluarea datelor folosind cereri GET, ceea ce este util pentru cei care construiesc aplicații cu WordPress.
Acestea fiind spuse, acest lucru ar putea deschide site-ul dvs. unui nou front de atacuri DDoS. De asemenea, poate fi intensiv în resurse și poate încetini site-ul dvs. WordPress.
Dezactivarea API-ului REST JSON este similară cu dezactivarea XML-RPC, pe care mulți administratori de site-uri o dezactivează pe site-urile lor WordPress doar pentru a fi în siguranță.
Acestea fiind spuse, îți vom arăta două metode pentru a dezactiva cu ușurință REST API-ul JSON în WordPress. Pur și simplu folosește linkurile rapide de mai jos pentru a sări la metoda pe care vrei să o folosești:
- Metoda 1. Dezactivarea API-ului REST JSON în WordPress cu cod (Recomandat)
- Metoda 2. Dezactivarea API-ului REST JSON în WordPress cu un plugin
- Metodă alternativă: Dezactivarea linkurilor API REST în WordPress cu cod
Metoda 1. Dezactivarea API-ului REST JSON în WordPress cu cod (Recomandat)
Când vine vorba de modificarea funcționalității WordPress, utilizarea fragmentelor de cod este adesea cea mai bună abordare. Dar, editarea directă a fișierului functions.php al temei dvs. poate fi riscantă și ar putea defecta site-ul dvs. dacă nu este făcută corect.
De aceea recomandăm utilizarea plugin-ului WPCode pentru a dezactiva JSON REST API în WordPress.
Este același plugin pe care îl folosim pe propriile noastre site-uri web pentru a adăuga cod personalizat în WordPress în siguranță, fără a edita fișierele temei.
Pentru a afla mai multe despre cum folosim pluginul, consultați recenzia noastră completă WPCode aici.

În plus, WPCode vine cu o bibliotecă de coduri încorporată care include fragmente de cod verificate pentru solicitări populare de funcționalități, cum ar fi dezactivarea REST API, dezactivarea XML-RPC și multe altele.
Acest lucru vă scutește de instalarea mai multor pluginuri de unică folosință pentru diferite sarcini.
Pentru a începe, trebuie să instalați și să activați pluginul gratuit WPCode. Pentru instrucțiuni pas cu pas, citiți ghidul nostru despre cum să instalați un plugin WordPress.
Notă: versiunea gratuită a WPCode are tot ce ai nevoie pentru a adăuga cu ușurință cod personalizat în WordPress. Dar, dacă dorești funcționalități avansate precum o bibliotecă privată de fragmente de cod în cloud, fragmente de cod specifice paginii și dispozitivului, revizuiri de cod și multe altele, poți face upgrade la WPCode Pro.
După ce pluginul este activat, accesează Fragmente de cod » Bibliotecă din tabloul de bord WordPress.
Apoi, căutați fragmentul „Dezactivare API REST WordPress” și faceți clic pe butonul „Utilizați fragmentul”.

Pluginul va adăuga automat codul pentru dvs. și va selecta, de asemenea, metoda de inserare corectă.

Tot ce trebuie să faceți este să comutați comutatorul de la „Inactiv” la „Activ”.
Apoi, faceți clic pe butonul „Actualizare”.

Atât. Acum JSON REST API este dezactivat pe site-ul tău WordPress.
Metoda 2. Dezactivarea API-ului REST JSON în WordPress cu un plugin
Puteți, de asemenea, să dezactivați cu ușurință API-ul REST JSON cu ajutorul unui plugin dedicat.
Primul lucru pe care trebuie să îl faceți este să instalați și să activați pluginul Disable REST API. Pentru mai multe detalii, consultați ghidul nostru pas cu pas despre cum să instalați un plugin WordPress.
Pluginul funcționează imediat și nu există setări pe care să le configurați.
La activare, pluginul va returna forțat o eroare de autentificare oricăror solicitări API din surse care nu sunt conectate la site-ul dvs. web.
Acest lucru va împiedica în mod eficient solicitările neautorizate să utilizeze REST API pentru a obține informații de pe site-ul dvs.
Puteți testa acest lucru vizitând pagina http://example.com/wp-json. Asigurați-vă că v-ați deconectat din zona de administrare WordPress mai întâi, sau comutați browserul în modul incognito.
Nu uita să înlocuiești example.com cu propriul tău nume de domeniu. Vei vedea acest mesaj, indicând că cererile REST API sunt blocate.

Atât. Ați dezactivat cu succes cererile neautorizate API REST pe site-ul dvs. WordPress.
Metodă alternativă: Dezactivarea linkurilor API REST în WordPress cu cod
În loc să dezactivați WordPress REST API, puteți alege să dezactivați doar linkurile REST API. Acest lucru ascunde punctele finale ale API-ului din codul sursă al site-ului dvs. WordPress fără a dezactiva complet REST API.
Cu această metodă, puteți îmbunătăți securitatea făcând punctele finale mai greu de găsit, păstrând în același timp toate funcționalitățile WordPress funcționale. Este o alegere populară printre dezvoltatori, deoarece adaugă securitate fără a afecta temele sau plugin-urile care necesită REST API pentru a funcționa.
Pentru a face acest lucru, trebuie să instalați și să activați pluginul WPCode. Dacă aveți nevoie de ajutor, consultați tutorialul nostru despre cum se instalează un plugin WordPress.
La activare, accesați Snippets de cod » Bibliotecă din tabloul de bord WordPress.
De acolo, căutați fragmentul „Dezactivare linkuri REST API”. Când îl găsiți, treceți cu mouse-ul peste el și faceți clic pe butonul „Utilizați fragmentul”.

După aceea, WPCode va adăuga automat fragmentul de cod și va selecta metoda de inserare corectă.

Acum, tot ce trebuie să faceți este să comutați comutatorul de la „Inactiv” la „Activ”.
În cele din urmă, apăsați butonul „Actualizare”.

Este atât de simplu. Acum, linkurile REST API vor fi dezactivate pe site-ul tău WordPress.
Sperăm că acest articol v-a ajutat să învățați cum să dezactivați API-ul REST JSON în WordPress. Utilizatorii preocupați de securitate ar putea dori, de asemenea, să consulte aceste sfaturi despre protejarea zonei de administrare WordPress, sau să vadă selecțiile noastre de top pentru cele mai bune plugin-uri de backup WordPress.
Dacă ți-a plăcut acest articol, te rugăm să te abonezi la canalul nostru de YouTube pentru tutoriale video WordPress. Ne poți găsi, de asemenea, pe Twitter și Facebook.

Dennis Muthomi
Apreciez în mod deosebit cele două metode pe care le-ați prezentat, în special abordarea bazată pe cod folosind WPCode. Ca proprietar de site, am ezitat să dezactivez API-ul din cauza beneficiilor sale, dar explicația dumneavoastră despre potențialele riscuri de securitate m-a făcut să mă reconsider.
Sunt interesat de pluginul WPCode și de capacitatea sa de a gestiona în siguranță fragmente de cod personalizate. Cu siguranță voi explora mai departe acest instrument pentru a implementa alte personalizări WordPress fără a-mi aglomera site-ul cu pluginuri cu scop unic.
Mulțumesc pentru asta. WPBeginner este CEL MAI BUN!
Dayo Olobayo
Apreciez claritatea acestui tutorial despre dezactivarea JSON REST API în WordPress. Cu toate acestea, mă întreb dacă dezactivarea completă a API-ului este cea mai bună abordare, având în vedere beneficiile sale potențiale pentru funcționalitatea site-ului web și integrarea cu alte servicii.
Suport WPBeginner
Ar depinde de proprietarul site-ului dacă ar fi cel mai bun pentru nevoile sale sau nu, sau dacă a întâmpinat o problemă în utilizarea sa.
Admin
Dayo Olobayo
Mulțumesc. Presupun că este esențial să cântăriți riscurile potențiale de securitate în raport cu beneficiile API-ului REST JSON, luând în considerare nevoile și circumstanțele unice ale proprietarului.
Jiří Vaněk
Salut Dayo Olobayo,
Întrebarea este mai mult despre dacă folosești sau nu acest API. Este la fel ca și cu XML-RPC. Eu nu îl folosesc pe site-ul meu, așa că l-am dezactivat. Desigur, asta înseamnă că nu mă pot conecta la site folosind, de exemplu, aplicația mobilă WordPress, care folosește XML-RPC pentru a se conecta. Este întotdeauna un compromis între ceea ce vrei să dezactivezi și ceea ce vrei să permiți. Orice API care acceptă cereri externe poate fi un risc potențial, și este pur și simplu o chestiune de dacă vrei să îl folosești sau nu.
RJW
Aș încerca să dezactivez pluginul în mediul de dezvoltare înainte de producție, am constatat că instalarea lui a stricat unele funcționalități
Suport WPBeginner
Dacă aveți multe pluginuri și instrumente diferite și aveți un mediu de testare, atunci ar fi cu siguranță bine să testați noi pluginuri și cum interacționează cu site-ul dvs.
Admin
Ricky
Similar cu un comentariu de mai sus, am observat cererea „wp-json” atunci când folosesc Pingdom și alte site-uri de testare. Din păcate, a mea durează peste 10 secunde (Da, serios!!) să se încarce. Acest lucru îmi afectează timpul total de încărcare al site-ului și nu pot să-mi dau seama cum să rezolv asta. Pluginul nu schimbă nimic. Aveți sugestii?
Janice
Cum știu dacă am de fapt API JSON pe site-ul meu?
Acest articol despre eliminarea lui este bun – dacă am nevoie de el – dar am fost adesea alarmat de anumite avertismente doar pentru a descoperi că nici măcar nu mi se aplicau.
Suport WPBeginner
Salut Janice,
Dacă utilizați un site WordPress.org auto-găzduit, atunci aveți JSON REST API disponibil pe site-ul dvs. web.
Admin
Logan Cale
Urăsc să adaug încă un plugin pentru a face o sarcină simplă și am descoperit că putem dezactiva această funcționalitate adăugând următorul fragment de cod în fișierul functions.php.
add_filter(‘rest_enabled’, ‘_return_false’);
add_filter(‘rest_jsonp_enabled’, ‘_return_false’);
Margarit Koka
Mulțumesc frate, răspunsul tău este ceea ce căutam când am vizitat această pagină.
Bobby C.
Mulțumesc! Direct la subiect.
Hari
Căutam acest cod, a funcționat, mulțumesc, nu prefer să adaug pluginuri.
Michael
Mulțumesc pentru ajutor. Nu există nicio opțiune de „adăugare nouă” în pluginurile mele.
Suport WPBeginner
Probabil folosești WordPress.com. Te rugăm să consulți ghidul nostru despre diferența dintre WordPress.org auto-găzduit vs. blog WordPress.com gratuit.
Admin
Lynne
Thank you! Spot on
worked for me
J.L.
Este doar pentru bloguri auto-găzduite sau include site-uri de blog gratuite? Deoarece majoritatea pluginurilor... etc. sunt făcute pentru tine atunci când nu ești auto-găzduit
PS Nu mă abonez... vreau doar un răspuns
Suport WPBeginner
Acesta este doar pentru site-urile WordPress.org auto-găzduite.
Admin
Elaine
Cum pot verifica dacă site-ul meu are Rest API. Am dezactivat multe opțiuni suplimentare când l-am configurat inițial, dar acum nu știu unde să caut pentru a vedea dacă este acolo. Nu doresc să descarc un plugin inutil.
Suport WPBeginner
Salut Elaine,
Puteți verifica dacă API-ul REST este activat pe site-ul dvs. vizitând URL-ul de genul example.com/wp-json. Asigurați-vă că sunteți deconectat de la WordPress înainte de a face acest lucru. Dacă vedeți multe informații în text simplu, atunci înseamnă că API-ul REST este activat pe site-ul dvs. Urmați instrucțiunile de mai sus pentru a-l dezactiva.
Admin
Saransh Jain
Ce zici de opțiunea de a dezactiva json rest api în plugin-ul Jetpack?
Ken Dowling
Este dezactivarea REST API potrivită pentru site-uri de comerț electronic precum WooCommerce? Înțelegerea mea este că WooCommerce folosește destul de mult REST-API.
Mai mult, cumpărătorii mei nu trebuie să se autentifice pentru a cumpăra, deci ce se întâmplă cu tranzacția atunci când un apel REST API este respins?
Cu stimă, Ken
D. Joe Chaffin
Pluginul nu face nicio diferență pentru mine în WP 4.7.2. Cu pluginul activat sau dezactivat, paginile example.com/wp-json (cu domeniul meu înlocuind „example”) oferă o listă masivă de setări pentru site-ul meu.
D. Joe Chaffin
Hmmmm. Acum, când mă uit la asta, văd lista doar în Safari, în timp ce Chrome și Firefox pentru Mac afișează mesajul așteptat specificat în această postare.
Suport WPBeginner
Salut,
Asigurați-vă că sunteți deconectat din zona de administrare WordPress sau folosiți modul incognito înainte de a testa pagina example.com/wp-json. Pluginul dezactivează accesul la pagină doar pentru utilizatorii neautorizați. Ca administrator, veți putea în continuare să o vedeți.
Admin
D. Joe Chaffin
Rușinat... Ai dreptate, desigur.
Audra Carpenter
Salutare, băieți,
În primul rând, mulțumesc mult pentru tot ce faci! Am învățat atât de multe despre Wordpress de la tine și am trimis o mulțime de oameni în direcția ta!!
Ok, am instalat plugin-ul, dar nu văd ce sugerați mai sus? Am un ecran plin de informații…?
Păreri?
Mulțumesc!
Suport WPBeginner
Salut Audra,
Vă rugăm să vă deconectați sau să folosiți fereastra de incognito pentru a testa. Plugin-ul dezactivează accesul doar pentru utilizatorii nelogați.
Admin
Treasure
Am urmat acești pași, dar când am verificat cu exemplul etc., am primit 2 pagini de cod, nu răspunsul afișat mai sus. Hmmm, nu știu ce să fac.
Treasure
Bine, am făcut-o din nou și am primit mesajul corect. Mulțumesc!
Doug Nix
Când am rulat testul, cred că a eșuat, deoarece am primit o mulțime de date pe ecran. Ai idee ce s-ar fi putut să nu funcționeze? Am instalat pluginul conform descrierii...
Doug Nix
Funcționează perfect când verific folosind o fereastră incognito. Mulțumesc pentru explicația referitoare la utilizatorii autorizați vs neautorizați sau anonimi.
Laura Zielke
A funcționat perfect. Mulțumesc!
Karl
Mulțumesc pentru pont, precum și pentru hook-ul de dezactivare a XMLRPC.
Există o șansă pentru un hook de filtrare și pentru REST API?
Andrew
Când verific viteza site-ului meu folosind pingdom.com, prima intrare HTML care a încercat să se încarce arată linkul ca mydomain.com/wp-json și are peste 2 secunde de timp de „așteptare”. Este același lucru despre care vorbește acest articol? Ezit să îl dezactivez pur și simplu, deoarece aș presupune că va fi folosit în viitor. Aveți idee de ce ar adăuga o întârziere de peste 2 secunde la încărcarea oricărui element de pe pagină?
Stephen Cronin
Hmm, API-ul REST va deveni metoda standard pentru pluginuri și teme de a face apeluri Ajax către server din partea frontală, înlocuind admin-ajax, așa că nu aș dezactiva-o… Sperăm că vor eșua grațios, dar aproape că veți ajunge să pierdeți o anumită funcționalitate.
Also, if you really want to protect against DDoS attacks, you better disable html as well!
reza
peste 50.000 de site-uri web WordPress au fost sparte din cauza unei vulnerabilități majore de securitate descoperite în API-ul REST WordPress.
Jim S Smith
AUCH!
Este tulburător de știut. Am observat MULTE încercări de acces în logurile site-ului meu.
Mai mult decât atât,
Cred că cei de la WordPress ar fi putut face puțin mai mult pentru a lăsa utilizatorii să decidă cât de mult, dacă deloc, doresc ca REST API-ul să fie expus.
Din nou,
Mai mult din asta, „Dezvoltatorii știu MAI MULTE despre nevoile utilizatorului decât utilizatorul!” – Nici eu nu am fost prea mulțumit că am fost forțat să suport EMOJI și fonturi încărcate de la distanță de pe fonts.google.com, chiar dacă site-urile mele nu le folosesc!
API-ul REST poate fi un avantaj pentru (unii) dezvoltatori de aplicații web, dar ce ne facem cu restul dintre noi care nu-l vom folosi prea probabil? ? ?
Kasey
Cât de probabil este ca un plugin să folosească această funcționalitate. Doar ca exemplu, formularele de contact ar utiliza acest lucru? Nu sunt dispus să o dezactivez în caz că strică ceva.
Suport WPBeginner
Pluginurile te vor notifica cel mai probabil dacă îl vor folosi și tu îl ai dezactivat.
Admin