
🔒 Hur du inaktiverar REST API i WordPress: 4 sätt 2026
Vad är REST API och varför inaktivera det
REST API i WordPress är ett inbyggt gränssnitt genom vilket externa applikationer läser och ändrar webbplatsdata. Förfrågningar går till /wp-json/, svaret kommer tillbaka som JSON. Det dök upp i WordPress 4.7 och har varit aktiverat som standard på varje webbplats sedan dess.
Detta är bekvämt för utvecklare: mobilappar, headless-arkitektur, integrationer med tredjepartstjänster. Men om du inte använder något av ovanstående är ett öppet REST API ett hål kvar. Noll nytta, verkliga risker.
Specifika hot:
- Användaruppräkning. Via
/wp-json/wp/v2/userskan vem som helst få en lista över användarnamn. Nästa steg, brute force-attacker mot lösenord. - Innehållsskrapning. Inlägg via
/wp-json/wp/v2/postshämtas automatiskt och publiceras på andra webbplatser. - Onödig belastning. Varje REST-förfrågan går genom hela WordPress-cykeln. Tusen bottar per minut, och webbplatsen går ner.
Nedan finns fyra sätt att låsa REST API: från ett plugin med ett klick till en blockering på servernivå. Välj det som passar din situation.
💡 Snabb översikt:
- Installera Disable WP REST API-pluginet: 30 000+ aktiva installationer, inga inställningar, fungerar direkt efter aktivering.
- Konfigurera begränsningen i Solid Security: om ett säkerhetsplugin redan finns på webbplatsen finns REST API-reglaget i avsnittet Avancerat.
- Lägg till kod i functions.php: för dig som inte vill ha ett separat plugin för ett enda filter, en snutt som använder
rest_authentication_errors. - Lägg till en regel i.htaccess: en blockering på Apache-servernivå, en hård metod utan undantag.
Metod 1: Disable WP REST API-plugin, ett klick
Den enklaste och säkraste metoden. Disable WP REST API-pluginet på WordPress.org gör exakt en sak: det stänger REST API för alla som inte är inloggade i adminområdet. Autentiserade användare fungerar som vanligt, blockredigeraren, andra plugins, allt fungerar.
Installation: Plugins → Lägg till nytt, sök efter "Disable WP REST API", installera och aktivera. Pluginet väger 4 KB och börjar fungera omedelbart. Det finns inga inställningar.
Verifiering: logga ut från adminområdet och öppna https://вашсайт.ru/wp-json/ i din webbläsare. Du kommer att se meddelandet: {"code":"rest_login_required","message":"REST API restricted to authenticated users.","data":{"status":401}}. Detta betyder att REST API är stängt för externa förfrågningar.
Plugin-författaren, Jeff Starr, har 15 års erfarenhet av WordPress och är författare till flera böcker i ämnet. Koden är öppen, pluginet uppdateras regelbundet: från och med juli 2026, version 2.6.8, testat upp till WordPress 7.0.2.
Fördelar:
- Installationen tar en minut, inga inställningar
- 4 KB kod, påverkar inte webbplatsens hastighet
- Rör inte adminområdet eller blockredigeraren
- 30 000+ aktiva installationer, 4,8 i betyg på WordPress.org
Nackdelar:
- Blockerar endast oautentiserade användare, en inloggad användare ser hela REST API
- Inga detaljerade inställningar i gratisversionen (Pro-versionen, REST Pro Tools, lägger till filtrering efter roll och IP)
Pris: Gratis. Pro-version, REST Pro Tools, på utvecklarens webbplats.
Ladda ner: 🔗 Disable WP REST API på WordPress.org
Metod 2: Begränsning via Solid Security
Om du redan har Solid Security (tidigare iThemes Security) installerat behöver du inget separat plugin för REST API. Säkerhetsinställningarna innehåller ett färdigt reglage.
Sökväg: Säkerhet → Inställningar → Avancerat → WordPress REST API. I rullgardinsmenyn, välj "Begränsad åtkomst", REST API kommer endast att vara tillgängligt för autentiserade användare.

Kontrollera även inställningen för XML-RPC i samma avsnitt. Om du inte använder WordPress mobilapp och inte ansluter Jetpack, inaktivera det också. Två gränssnitt som sällan behövs men ofta attackeras.
Fördelar:
- Inget separat plugin behövs, funktionen är redan inbyggd i Solid Security
- Gränssnitt med förklaringar, ingen kod behöver röras
- XML-RPC konfigureras samtidigt
Nackdelar:
- Fungerar endast om du redan använder Solid Security (att installera det bara för detta är overkill)
- Gratisversionen stänger REST API helt för oautentiserade användare, utan undantag för enskilda endpoints
Ladda ner: 🔗 Solid Security på WordPress.org
Metod 3: Kod i functions.php, inga plugins
Om du inte vill installera ett plugin för ett enda filter, här är en snutt som gör samma sak. Lägg till den i ditt barntemas functions.php eller via Code Snippets-pluginet.
Säkerhetskopiera din webbplats innan du redigerar. Ett fel i functions.php orsakar den vita dödsskärmen, och utan adminåtkomst måste du fixa det via FTP.
1 /** 2 * Close REST API for unauthorized users. 3 * Authorized users work with API as usual. 4 */ 5 add_filter('rest_authentication_errors', function($access) { 6 if (! is_user_logged_in()) { 7 return new WP_Error( 8 'rest_forbidden', 9 __('REST API restricted to authenticated users.', 'textdomain'), 10 array('status' => 403) 11 ); 12 } 13 return $access; 14 });
Vad som händer här. rest_authentication_errors-filtret körs vid varje REST-förfrågan. is_user_logged_in() kontrollerar om besökaren är inloggad. Om inte returneras ett WP_Error med kod 403, och WordPress blockerar förfrågan från att gå vidare. Om inloggad fungerar API utan begränsningar.
Efter att ha lagt till koden, kontrollera resultatet: öppna /wp-json/ i inkognitoläge. Ett 403-fel bör returneras.
Viktigt. Det gamla rest_enabled-filtret har tagits bort från WordPress kärna. Snuttar med add_filter('rest_enabled', '_return_false'), som förekommer i gamla handledningar, fungerar inte från och med WordPress 5.0. Använd endast rest_authentication_errors.
Metod 4: Blockering via.htaccess, på servernivå
En radikal metod. En regel i .htaccess blockerar förfrågningar till /wp-json/ innan WordPress ens startar. Apache-servern returnerar en 403 utan att någonsin nå PHP.
Lämpligt när:
- REST API definitivt inte behövs i någon form, varken av dig eller av plugins;
- servern körs på Apache (för Nginx skrivs regeln via ett
location-block); - du är bekväm med att redigera serverkonfigurationen.
Lägg till i .htaccess-filen i webbplatsens rot:
1 <IfModule mod_rewrite.c> 2 RewriteEngine On 3 RewriteCond %{REQUEST_URI} ^/wp-json/ [NC] 4 RewriteRule .* - [F] 5 </IfModule>
Regeln aktiveras på alla URL:er som börjar med /wp-json/. [F]-flaggan betyder 403 Forbidden, [NC]-flaggan gör jämförelsen skiftlägesokänslig.
Se till att göra en kopia av .htaccess innan du redigerar. Ett syntaxfel tar ner hela webbplatsen med ett 500-fel.
Den största nackdelen med detta tillvägagångssätt: alla REST-förfrågningar blockeras utan undantag. Om ett kontaktformulär slutar fungera efter redigeringen (Contact Form 7 använder REST API), gå tillbaka till metod 1 eller 3.
Se en 6-minuters översikt över REST API-risker av David McAllen: han visar verkliga förfrågningar till /wp-json/ och demonstrerar båda plugins i aktion.
⁉️🤔 FAQ
Behöver jag inaktivera REST API på varje webbplats?
Nej. Om du använder WordPress mobilapp, blockredigeraren (Gutenberg) eller plugins som Contact Form 7 och WooCommerce behöver de REST API. I så fall är det bättre att inte inaktivera det helt utan att konfigurera en rollbaserad begränsning.
Du bör inaktivera REST API på webbplatser där det inte används avsiktligt: bloggar på den klassiska redigeraren, landningssidor, broschyrwebbplatser. På sådana projekt erbjuder ett öppet
/wp-json/inget annat än risker. Två minuter för att installera Disable WP REST API-pluginet, och attackvektorn är stängd.
Hur verifierar jag att REST API faktiskt är inaktiverat?
Öppna https://вашсайт.ru/wp-json/ i din webbläsare i inkognitoläge (du måste vara utloggad). Om du ser ett 401- eller 403-fel är REST API stängt. Om JSON-data visas fungerar inte skyddet, kontrollera dina inställningar.
Kommandoraden fungerar också:
curl -I https://вашсайт.ru/wp-json/wp/v2/users. En 200-svarskod betyder att användarlistan serveras publikt, en röd flagga, skyddet behöver finjusteras.
Kommer inaktivering av REST API att förstöra blockredigeraren?
Nej, om du använder metod 1-3. Disable WP REST API-pluginet, Solid Security och rest_authentication_errors-snuttet släpper alla igenom autentiserade användare. Blockredigeraren fungerar, eftersom du är inloggad i adminområdet.
Metod 4 (.htaccess) är undantaget. Serverblocksblockeringen stänger ute alla urskillningslöst, och blockredigeraren kommer att sluta fungera. Om adminområdet går sönder efter redigering av
.htaccess, gå tillbaka till metod 1 eller 3.
Vilket är säkrare: ett plugin eller kod i functions.php?
Ur skyddssynpunkt är båda alternativen likvärdiga, de använder samma WordPress-mekanism. Skillnaden ligger i bekvämlighet och underhåll.
Disable WP REST API-pluginet uppdateras automatiskt, är inte beroende av temat och försvinner inte när du byter mall. Kod i
functions.phpär för dem som principiellt är emot att installera plugins för en enda funktion. Välj baserat på din administrationsmetod, det påverkar inte säkerheten.
Kan jag bara stänga /users-endpointen och lämna resten öppet?
Du kan, men det är en finjusteringsuppgift. Gratisverktygen i denna artikel blockerar REST API helt för oautentiserade användare.
Om du behöver hålla vissa endpoints öppna och stänga andra, använd REST Pro Tools (Pro-versionen av Disable WP REST API-pluginet) eller
rest_endpoints-filtret ifunctions.php. Du måste uttryckligen lista de tillåtna rutterna, en halvtimmes uppgift om du kan WordPress REST API-struktur.
Du har låst REST API, vad händer nu?
REST API är bara en attackvektor. Genom att stänga det tog du bort den enklaste ingångspunkten för bottar, men detta är inte en ersättning för fullfjädrat skydd.
Kort sagt: metod 1 (Disable WP REST API-pluginet) löser problemet på två minuter. Installera det, kontrollera /wp-json/ i inkognito, se till att ditt kontaktformulär fungerar, klart. Riskerna är minskade.
Nästa lager är en brandvägg och brute force-skydd. Börja med gratis Solid Security: det stänger REST API, XML-RPC och lösenords-brute force i ett enda gränssnitt. Vilket säkerhetsplugin du använder, låt oss veta i kommentarerna.


