Sådan deaktiveres JSON REST API i WordPress 1

Sådan deaktiveres JSON REST API i WordPress

Takket være dets fleksibilitet og brugervenlighed er WordPress content management system (CMS) blevet den mest brugte platform til oprettelse af hjemmesider. Dens funktioner bliver konstant forbedret, og et stadigt voksende antal brugere, uanset deres programmeringserfaring, får en chance for at oprette en hjemmeside. Som et resultat af dens konstante forbedring er nogle af WordPress-funktionerne imidlertid mindre kendte af det generelle WordPress-fællesskab og bruges i stedet mest af udviklere. I denne artikel vil vi kaste lys over en af ​​disse funktioner – JSON REST API i WordPress. Vi vil diskutere, hvad det er, og om du skal deaktivere det, samt de trin, du skal tage for at gøre det.

Hvorfor du måske ønsker at deaktivere JSON REST API i WordPress

Det WordPress JSON REST API er en udviklerorienteret funktion, der blev introduceret i WordPress 4.4-opdateringen, som stadig vækker kontrovers. REST eller Representational State Transfer er en type softwarearkitektur, der almindeligvis bruges til at skabe interaktive webtjenester. Mere præcist gør det din hjemmeside til en tilgængelig webservice. Dette betyder, at andre applikationer eller webtjenester kan udtrække nogle tilgængelige oplysninger på dit websted ved at sende specifikke HTTP GET-anmodninger. WordPress REST API er helt afhængig af strukturerede JSON-data, hvorfor nogle kalder det JSON REST API. Et eksempel på JSON-data, selvom det ikke er formateret, er vist nedenfor. Disse data vises, når du tilgår den såkaldte REST API-rodrute, oprettet ved at tilføje /wp-json til slutningen af ​​dit websteds URL.

WP JSON-side

På trods af at uformaterede JSON-data er svære at læse, udgør de stadig en sikkerhedsrisiko, fordi nogle WordPress- eller brugerrelaterede data kan være offentligt tilgængelige ved at navigere til specifikke REST API-ruter. For eksempel ved at få adgang til /wp-json/wp/v2/brugere rute, kan du få adgang til de brugerrelaterede data på et bestemt websted. Selvom du ikke kan hente adgangskoder til webstedsbrugere på denne måde, vil blot at kende brugernavnene gøre webstedet sårbart over for brute-force-angreb. På grund af dette vælger nogle WordPress-brugere at deaktivere WordPress REST API. Vi anbefaler dog, at du indsamler flere oplysninger, før du ringer.

Det er vigtigt at forstå, at da WordPress-kernefilerne blev opdateret og blev mere polerede, blev REST API også forbedret. Som et resultat er brugen af ​​REST API blevet en integreret del af mange plugins og temafunktioner. Derfor bør du konsultere forfatterne af dit aktuelle tema og plugins, før du deaktiverer REST API. Ellers risikerer du at gøre nogle af funktionerne i dit tema og plugins ubrugelige.

Desuden skal du være opmærksom på, at selv den nuværende standard WordPress-editor – Gutenberg – er afhængig af nogle REST API-ruter til redigering af sider og indlæg. Hvis du overvejer at deaktivere REST API, og Gutenberg er din foretrukne editor, vil du ikke være i stand til at udgive eller opdatere sider og indlæg, hvis du går igennem med deaktiveringen.

Det er nok at sige, alt dette udgør et væsentligt problem. En potentiel løsning, der ikke involverer deaktivering af REST API, er at begrænse adgangen til uautoriserede brugere på en rute-for-rute-basis. Vi vil dække, hvordan man gør dette, mens vi forklarer, hvordan man bruger et plugin til at deaktivere REST API nedenfor. Ikke desto mindre er det et must at rådføre sig med dine tema- og plugin-forfattere, før du forsøger at implementere begrænsninger. Dette er den eneste sikre måde at forbedre den overordnede sikkerhed på dit websted uden at skade dets funktionaliteter.

Sådan deaktiveres JSON REST API i WordPress

Nu hvor du forstår, hvorfor nogen måske ønsker, helt eller delvist, at deaktivere JSON REST API i WordPress, lad os forklare, hvordan det kan gøres. I sektionerne nedenfor vil vi dække to mulige metoder – ved hjælp af et WordPress-plugin eller ved at bruge tilpasset kode.

Brug af et plugin

Der findes et væld af WordPress plugins på markedet, hvilket gør det relativt nemt at finde et passende til næsten ethvert formål. I dette tilfælde fandt vi Deaktiver REST API plugin, som vi vil bruge til at skitsere nedenstående trin. Dette plugin er meget fleksibelt – det kan tjene til helt at deaktivere REST API eller til at deaktivere nogle ruter kun for specifikke brugertyper.

For fuldt ud at deaktivere JSON REST API i WordPress behøver du kun at installere og aktivere dette plugin. Dette vil som standard udelukke adgang til alle JSON REST API-ruter til uautoriserede brugere.

Dette plugin giver også mulighed for delvist at tillade eller afvise REST API-adgang. Mere præcist giver det dig mulighed for at angive, hvilke ruter der kan tilgås af uautoriserede brugere eller brugere med specifikke brugerroller. For at indstille dette, naviger til Indstillinger > Deaktiver REST API. Derefter vælg den passende brugertype med Regler til: mulighed og sæt de regler, du ønsker i Administrer regler afsnit under.

Indstillinger Deaktiver REST API

For at præcisere tillader eller forbyder disse regler brugen af ​​visse REST API-ruter. Og disse ruter repræsenterer dele af URL’en, som du kan knytte til REST API root URL (dit-websted-url/wp-json/) for at få en bestemt type data. I nogle tilfælde kan dele af disse ruter indeholde regulære udtryk. Du kan se eksempler på dette i skærmbilledet ovenfor.

Når det er sagt, kan du vælge at sætte regler for uautoriserede brugere, såvel som brugere af enhver brugerrolle, der er tilgængelig på hjemmesiden. Når du har gjort det, får du mulighed for enten at tillade REST API-adgang fuldt ud for en given brugertype eller manuelt at indstille adgangen for hver tilgængelig rute.

For fuldt ud at tillade REST API-adgang for en given brugertype skal du vælge Administrer REST API-adgang og skift derefter kontakten ud for hvert af de navneområder eller ruter, der er tilgængelige på dit websted. Når du indstiller mulighederne efter dine behov, så glem ikke at gemme dem ved at klikke på Gem ændringer knappen i bunden. Efter at have afvist en rute til en bestemt brugertype, vil disse brugere få en fejlmeddelelse, når de forsøger at få adgang til den. Det vil ligne meddelelsen vist nedenfor.

WP JSON kan ikke få adgang

Bruger tilpasset kode

De fleste WordPress-brugere har en tendens til at vælge plugin-metoden, da den er den nemmeste at implementere. Men der er en anden måde at deaktivere REST API, og det er ved at bruge tilpasset kode. Fordelene ved denne metode er, at du kan undgå yderligere plugins, der potentielt kan bremse eller forårsage skade på din hjemmeside. Du kan dog helt deaktivere REST API ved hjælp af denne metode.

Trinene til det inkluderer at placere et lille kodestykke inde i functions.php-filen til dit tema eller i et webstedsspecifikt plugin. Vi vil vise dig, hvordan du gør dette ved at bruge filen functions.php. Inden du går videre, anbefaler vi dog, at du laver en sikkerhedskopi af din hjemmeside. Dette er både god praksis og en god sikkerhedsforanstaltning. Når du har gjort det, skal du fortsætte som beskrevet nedenfor.

Først skal du oprette forbindelse til din server ved at bruge dine FTP-legitimationsoplysninger og naviger til WordPress-rodmappen, ofte kaldet public_html.

Offentlig HTML FTP

Derefter, naviger til mappen /wp-content/themes og klik på mappen med dit aktive tema for at åbne det. Find functions.php-filen inden for, højreklik på den, og vælg Se/Rediger mulighed fra rullemenuen.

WP-Redigering af indholdsvisning

Åbn filen ved hjælp af din foretrukne teksteditor og tilføje følgende kode i bunden af ​​den.

function qode_disable_rest_api( $access ) {
return new WP_Error( 'rest_disabled', __( 'The WordPress REST API has been disabled.' ), array( 'status' => rest_authorization_required_code() ) );
}
add_filter( 'rest_authentication_errors', 'qode_disable_rest_api' );
FTP kode

Derefter, gemme ændringerne du har lavet til filen og upload det tilbage til serveren, for at tilsidesætte dens ældre version der.

Efter det, tjek om alt fungerer som det skal ved at undersøge en af ​​JSON REST API-ruterne, der findes på din hjemmeside. Hvis du har deaktiveret REST API for dit WordPress-websted, får du en fejlmeddelelse, når du forsøger at få adgang til den rute.

WP JSON-side deaktiveret

Husk dog, at denne kode vil forhindre adgang til alle REST API-ruter, i modsætning til plugin-metoden, der giver forskellige tillad/disallow-muligheder. Derfor skal du beslutte dig for, hvilken af ​​disse to metoder, der passer bedre til dine behov.

Afsluttende tanker

WordPress REST API er en meget nyttig, udviklerorienteret funktion, som brugere på alle færdighedsniveauer bør lære at kende. Det giver dig mulighed for hurtigt at interagere med webstedet ved hjælp af passende HTTP-anmodninger. Der er dog en åben debat om dets nytte i modsætning til den potentielle skade, det kan forårsage et websted. I denne artikel præsenterede vi nogle af punkterne fra den debat og dækkede måderne, hvorpå du kan deaktivere WordPress REST API. Da de metoder, vi beskrev, er relativt nemme, er vi sikre på, at du vil være i stand til at deaktivere JSON REST API for dit websted på få minutter.

Støt vores arbejde ❤️

Hvis du kunne lide denne artikel, kan du overveje at give drikkepenge for at hjælpe os med fortsat at udgive kvalitetsindhold.

Sikker betaling med PayPal