KEMBAR78
Hur man inaktiverar JSON REST API i WordPress (2 enkla metoder)
Pålitliga WordPress-handledningar, när du behöver dem som mest.
Nybörjarguide till WordPress
WPB Cup
25 miljoner+
Webbplatser som använder våra plugins
16+
År av WordPress-erfarenhet
3000+
WordPress-handledningar
av experter

Hur man inaktiverar JSON REST API i WordPress

Vi fick nyligen en fråga från en läsare som vi hör ganska ofta här: "Hur inaktiverar jag REST API på min WordPress-webbplats?" Och ärligt talat är det en giltig oro.

När WordPress version 4.4 släpptes med JSON REST API, öppnade det upp en värld av möjligheter för utvecklare.

Men för många webbplatsägare som inte behöver dessa avancerade funktioner kan API:et verka som ett onödigt tillägg som potentiellt öppnar deras webbplats för säkerhetsrisker.

I den här artikeln visar vi hur du enkelt kan inaktivera JSON REST API i WordPress.

Inaktivera JSON REST API i WordPress

Varför inaktivera JSON REST API i WordPress?

Det går inte att förneka att API:et har många fördelar för WordPress-utvecklare. API:et gör det superenkelt att hämta data med GET-förfrågningar, vilket är användbart för dem som bygger appar med WordPress.

Med det sagt kan detta potentiellt öppna din webbplats för en ny front av DDoS-attacker. Det kan också vara resurskrävande och sakta ner din WordPress-webbplats.

Att inaktivera JSON REST API liknar att inaktivera XML-RPC, vilket många webbplatsadministratörer inaktiverar på sina WordPress-webbplatser bara för att vara på den säkra sidan.

Med det sagt kommer vi att visa dig två metoder för att enkelt inaktivera JSON REST API i WordPress. Använd helt enkelt snabblänkarna nedan för att hoppa till den metod du vill använda:

Metod 1. Inaktivera JSON REST API i WordPress med kod (Rekommenderas)

När det gäller att ändra WordPress-funktionalitet är kodavsnitt ofta det bästa tillvägagångssättet. Men att direkt redigera din temas functions.php-fil kan vara riskabelt och kan bryta din webbplats om det inte görs korrekt.

Därför rekommenderar vi att använda WPCode-pluginet för att inaktivera JSON REST API i WordPress.

Det är samma plugin som vi använder på våra egna webbplatser för att säkert lägga till anpassad kod i WordPress utan att redigera temafiler.

För att lära dig mer om hur vi använder pluginet, se vår fullständiga WPCode-recension.

WPCode

Dessutom kommer WPCode med ett inbyggt kodbibliotek som inkluderar verifierade kodavsnitt för populära funktionsförfrågningar som att inaktivera REST API, inaktivera XML-RPC och mycket mer.

Detta sparar dig från att installera flera engångs-plugins för olika uppgifter.

För att komma igång behöver du installera och aktivera det kostnadsfria WPCode-pluginet. För steg-för-steg-instruktioner, läs vår guide om hur man installerar ett WordPress-plugin.

Notera: gratisversionen av WPCode har allt du behöver för att enkelt lägga till anpassad kod i WordPress. Men om du vill ha avancerade funktioner som ett privat molnbaserat avsnittsbibliotek, sid- och enhetsspecifika avsnitt, kodrevisioner och mer, kan du uppgradera till WPCode Pro.

När pluginet är aktiverat, gå till Kodavsnitt » Bibliotek från din WordPress-instrumentpanel.

Sök sedan efter kodavsnittet 'Inaktivera WordPress REST API' och klicka på knappen 'Använd kodavsnitt'.

Välj Inaktivera WordPress REST API i WPCode

Pluginet kommer sedan automatiskt att lägga till koden åt dig, och det kommer också att välja rätt insättningsmetod.

WPCode lägger automatiskt till kodavsnittet för att inaktivera JSON REST API

Allt du behöver göra är att växla omkopplaren från 'Inaktiv' till 'Aktiv'.

Klicka sedan på knappen ‘Uppdatera’.

Växla kodavsnittet till Aktiv och klicka på Uppdatera i WPCode

Det var allt. Nu är JSON REST API inaktiverat på din WordPress-webbplats.

Metod 2. Inaktivera JSON REST API i WordPress med ett plugin

Du kan också enkelt inaktivera JSON REST API med hjälp av ett dedikerat plugin.

Det första du behöver göra är att installera och aktivera pluginet Inaktivera REST API. För mer information, se vår steg-för-steg-guide om hur man installerar ett WordPress-plugin.

Pluginet fungerar direkt ur lådan och det finns inga inställningar som du behöver konfigurera.

Vid aktivering kommer pluginet att tvinga fram ett autentiseringsfel för alla API-förfrågningar från källor som inte är inloggade på din webbplats.

Detta kommer effektivt att förhindra obehöriga förfrågningar från att använda REST API:et för att hämta information från din webbplats.

Du kan testa detta genom att besöka sidan http://example.com/wp-json. Se till att du loggar ut från WordPress administratörsområde först, eller byt din webbläsare till inkognitoläge.

Glöm inte att ersätta example.com med ditt eget domännamn. Du kommer att se detta meddelande, vilket indikerar att REST API-förfrågningar blockeras.

REST API inaktiverat

Det var allt, du har framgångsrikt inaktiverat obehöriga REST API-förfrågningar på din WordPress-webbplats.

Istället för att inaktivera WordPress REST API kan du välja att bara inaktivera REST API-länkar. Detta döljer API-slutpunkterna från din WordPress-webbplats källkod utan att stänga av REST API:et helt.

Med den här metoden kan du förbättra säkerheten genom att göra slutpunkterna svårare att hitta, samtidigt som alla WordPress-funktioner fungerar normalt. Det är ett populärt val bland utvecklare eftersom det lägger till säkerhet utan att bryta teman eller plugins som behöver REST API för att fungera.

För att göra detta behöver du installera och aktivera pluginet WPCode. Om du behöver hjälp, se vår handledning om hur man installerar ett WordPress-plugin.

Vid aktivering, gå till Kodavsnitt » Bibliotek från din WordPress-instrumentpanel.

Sök därifrån efter kodavsnittet 'Inaktivera REST API-länkar'. När du hittar det, för muspekaren över det och klicka på knappen 'Använd kodavsnitt'.

Sök efter kodavsnittet Disable REST API Links från WPCode-biblioteket

Därefter kommer WPCode automatiskt att lägga till kodavsnittet och välja rätt infogningsmetod.

WPCode kommer att lägga till koden för att inaktivera REST API-länkar

Nu behöver du bara flytta reglaget från 'Inaktiv' till 'Aktiv'.

Slutligen, klicka på knappen 'Uppdatera'.

Växla kodavsnittet till Aktiv och klicka på Uppdatera i WPCode

Det är så enkelt. Nu kommer REST API-länkar att vara inaktiverade på din WordPress-webbplats.

Vi hoppas att den här artikeln hjälpte dig att lära dig hur du inaktiverar JSON REST API i WordPress. Säkerhetsmedvetna användare kanske också vill kolla in dessa tips om att skydda WordPress-administrationsområdet, eller se våra förväntade val av de bästa WordPress-säkerhetskopieringspluginsen.

Om du gillade den här artikeln, prenumerera då på vår YouTube-kanal för WordPress-videoguider. Du kan också hitta oss på Twitter och Facebook.

Upplysning: Vårt innehåll stöds av läsarna. Det innebär att om du klickar på några av våra länkar kan vi tjäna en provision. Se hur WPBeginner finansieras, varför det är viktigt och hur du kan stödja oss. Här är vår redaktionella process.

Det ultimata WordPress-verktyget

Få GRATIS tillgång till vår verktygslåda - en samling WordPress-relaterade produkter och resurser som alla proffs bör ha!

Läsarnas interaktioner

41 CommentsLeave a Reply

  1. Jag uppskattar särskilt de två metoder du har beskrivit, särskilt den kodbaserade metoden med WPCode. Som webbplatsägare har jag varit tveksam till att inaktivera API:et på grund av dess fördelar, men din förklaring av potentiella säkerhetsrisker har fått mig att ompröva.
    Jag är intresserad av WPCode-pluginet och dess förmåga att hantera anpassade kodavsnitt på ett säkert sätt. Jag kommer definitivt att utforska detta verktyg vidare för att implementera andra WordPress-anpassningar utan att belamra min webbplats med plugins för enskilda ändamål.
    Tack för detta. WPBeginner är BÄST!

  2. Jag uppskattar tydligheten i den här handledningen om hur man inaktiverar JSON REST API i WordPress. Jag undrar dock om det är den bästa metoden att helt inaktivera API:et med tanke på dess potentiella fördelar för webbplatsens funktionalitet och integration med andra tjänster.

    • Det skulle bero på webbplatsägaren om det vore bäst för deras behov eller inte, eller om de har stött på ett problem med att använda det.

      Admin

      • Tack. Jag antar att det är viktigt att väga de potentiella säkerhetsriskerna mot fördelarna med JSON REST API genom att beakta ägarens unika behov och omständigheter.

    • Hej Dayo Olobayo,
      Frågan handlar mer om huruvida du använder detta API eller inte. Det är samma sak som med XML-RPC. Jag använder det inte på min webbplats, så jag inaktiverade det. Självklart innebär detta att jag inte kan ansluta till webbplatsen med till exempel WordPress mobilapp, som använder XML-RPC för att ansluta. Det är alltid en kompromiss mellan vad du vill inaktivera och vad du vill tillåta. Alla API:er som accepterar externa förfrågningar kan utgöra en potentiell risk, och det är helt enkelt en fråga om huruvida du vill använda det eller inte.

  3. Jag skulle prova inaktiveringspluginet i en utvecklingsmiljö före produktion, jag fann att installationen bröt vissa funktioner

    • Om du har många olika plugins och verktyg och har en testmiljö, skulle det definitivt vara bra att testa nya plugins och hur de interagerar med din webbplats.

      Admin

  4. Liksom en kommentator ovan har jag märkt "wp-json"-förfrågan när jag använder Pingdom och andra testwebbplatser. Tyvärr tar min över 10 sekunder (Ja, verkligen!!) att ladda. Detta påverkar min totala laddningstid för webbplatsen och jag kan inte lista ut hur jag ska fixa det. Pluginet ändrar det inte alls. Några förslag?

  5. Hur vet jag om jag faktiskt har JSON API på min webbplats?
    Den här artikeln om att ta bort den är bra – om jag behöver den – men jag har ofta blivit oroad av vissa varningar för att sedan upptäcka att de inte ens var relevanta för mig.

  6. Jag hatar att lägga till ännu ett plugin för att göra en enkel uppgift, och jag upptäckte att vi kan inaktivera denna funktionalitet genom att lägga till följande kodavsnitt i functions.php-filen.

    add_filter(‘rest_enabled’, ‘_return_false’);
    add_filter(‘rest_jsonp_enabled’, ‘_return_false’);

  7. Gäller detta bara för självhostade bloggar eller inkluderar det gratis bloggplatser? Eftersom de flesta plugins... etc. är färdiga för dig när du inte är självhostad

    PS Jag prenumererar inte... vill bara ha ett svar

  8. Hur kan jag kontrollera om min webbplats har Rest API. Jag stängde av många extrafunktioner när jag först satte upp den men vet nu inte var jag ska leta för att se om den finns där. Jag är inte sugen på att ladda ner ett plugin i onödan.

    • Hej Elaine,

      Du kan kontrollera om REST API är aktiverat på din webbplats genom att besöka URL:en som detta exempel.com/wp-json. Se till att du är utloggad från WordPress innan du gör det. Om du ser mycket information i klartext, betyder det att REST API är aktiverat på din webbplats. Följ instruktionerna ovan för att stänga av det.

      Admin

  9. Är det lämpligt att inaktivera REST API för e-handelswebbplatser som WooCommerce? Min förståelse är att WooCommerce använder REST-API ganska mycket.

    Dessutom behöver mina köpare inte logga in för att köpa, så vad händer med transaktionen när ett REST API-anrop avvisas?

    Med vänliga hälsningar, Ken

  10. Plugin gör ingen skillnad för mig i WP 4.7.2. Med pluginet aktiverat eller inaktiverat ger sidan example.com/wp-json (med min domän som ersätter “example”) en massiv lista med inställningar för min webbplats.

    • Hmmmm. Nu när jag tittar på det, ser jag bara listan i Safari, medan Chrome och Firefox för Mac visar det förväntade meddelandet som anges i det här inlägget.

    • Hej,

      Se till att du är utloggad från WordPress adminområde eller använd inkognitoläge innan du testar sidan example.com/wp-json. Pluginet inaktiverar åtkomst till sidan endast för obehöriga användare. Som administratör kommer du fortfarande att kunna se den.

      Admin

  11. Hej allihopa,

    Först och främst tack så mycket för det du gör! Jag har lärt mig så mycket om Wordpress från dig och skickat massor av folk till dig!!

    Oke, jag installerade pluginet, men jag ser inte vad du föreslår ovan? Jag har en hel skärm med information…?

    Tankar?

    Tack!

  12. Jag följde dessa steg, men när jag gick för att kontrollera det med exemplet etc. fick jag 2 sidor med kod, inte svaret som visades ovan. Hmmm, vet inte vad jag ska göra.

  13. När jag körde testet tror jag att det misslyckades, eftersom jag fick en båtlast med data på skärmen. Någon idé om vad som kan ha gått fel? Jag installerade pluginet som beskrivet...

    • Fungerar perfekt när jag kontrollerar med ett inkognitofönster. Tack för förklaringen angående auktoriserade kontra icke-auktoriserade eller anonyma användare.

  14. Tack för tipset liksom för kroken för att inaktivera XMLRPC.
    Finns det en chans för en filterkrok för REST API också?

  15. När jag kontrollerar hastigheten på min webbplats med pingdom.com, visar den första HTML-posten som försökte laddas länken som mydomain.com/wp-json och den har över 2 sekunders "väntetid". Är detta samma sak som artikeln talar om? Jag är tveksam till att bara inaktivera den eftersom jag antar att den kommer att användas i framtiden. Någon idé om varför den skulle lägga till en 2+ sekunders fördröjning vid laddning av något på sidan?

  16. Hmm, REST API kommer att bli standardmetoden för plugins och teman att göra Ajax-anrop tillbaka till servern från frontend, och ersätta admin-ajax, så jag skulle inte inaktivera det… Förhoppningsvis kommer de att misslyckas graciöst, men du kommer nästan att sakna viss funktionalitet.

    Also, if you really want to protect against DDoS attacks, you better disable html as well! ;)

    • över 50 000 WordPress-webbplatser har hackats på grund av en stor säkerhetsbrist som upptäcktes i WordPress REST API.

      • AJ AJ!

        Det är oroande att veta. Jag har märkt MÅNGA åtkomstförsök i min webbplats loggar.

        Dessutom,

        Jag tycker att personerna på WordPress kunde ha gjort ett lite bättre jobb med att låta användarna bestämma hur mycket, om alls, de vill att REST API ska vara exponerat.

        Återigen,

        Mer av detta, "Utvecklarna vet MER om användarnas behov än vad användaren gör!" – Jag var inte heller alltför nöjd med att tvingas stödja EMOJI och fjärrladdade teckensnitt från fonts.google.com, även om mina webbplatser inte använder dem!

        REST API kan vara en välsignelse för (vissa) faktiska webbapplikationsutvecklare, men vad sägs om resten av oss som troligen inte kommer att använda detta? ? ?

  17. Hur troligt är det att ett plugin använder denna funktionalitet. Skulle till exempel kontaktformulär använda detta? Inte angelägen om att stänga av det ifall det förstör något.

Lämna ett svar

Tack för att du väljer att lämna en kommentar. Tänk på att alla kommentarer modereras enligt vår kommentarspolicy, och din e-postadress kommer INTE att publiceras. Använd INTE nyckelord i namn fältet. Låt oss ha en personlig och meningsfull konversation.