Siirry sisältöön
🔒 Kuinka poistaa REST API käytöstä WordPressissä: 4 tapaa 2026

🔒 Kuinka poistaa REST API käytöstä WordPressissä: 4 tapaa 2026

Mikä on REST API ja miksi se kannattaa poistaa käytöstä

WordPressin REST API on sisäänrakennettu rajapinta, jonka kautta ulkoiset sovellukset lukevat ja muokkaavat sivuston tietoja. Pyynnöt menevät osoitteeseen /wp-json/, ja vastaus palautuu JSON-muodossa. Se ilmestyi WordPress 4.7:ään ja on ollut siitä lähtien oletuksena käytössä jokaisella sivustolla.

Tämä on kätevää kehittäjille: mobiilisovellukset, headless-arkkitehtuuri, integraatiot kolmannen osapuolen palveluihin. Mutta jos et käytä mitään edellä mainituista, avoin REST API on pelkkä reikä. Ei mitään hyötyä, todellisia riskejä.

Konkreettisia uhkia:

  • Käyttäjien selvittäminen. Osoitteen /wp-json/wp/v2/users kautta kuka tahansa voi hakea listan käyttäjänimistä. Seuraava askel on salasanojen väsytyshyökkäys.
  • Sisällön kaapiminen. Artikkelit osoitteesta /wp-json/wp/v2/posts voidaan hakea automaattisesti ja julkaista uudelleen muilla sivustoilla.
  • Turha kuormitus. Jokainen REST-pyyntö käy läpi koko WordPress-syklin. Tuhat bottia minuutissa, ja sivusto kaatuu.

Alla on neljä tapaa lukita REST API: yhden klikkauksen lisäosasta palvelintason estoon. Valitse tilanteeseesi sopiva.

💡 Pikavertailu:

  • Asenna Disable WP REST API -lisäosa: yli 30 000 aktiivista asennusta, ei asetuksia, toimii heti aktivoinnin jälkeen.
  • Määritä rajoitus Solid Securityssä: jos tietoturvalisäosa on jo sivustolla, REST API:n kytkin löytyy Advanced-osiosta.
  • Lisää koodia functions.php-tiedostoon: niille, jotka eivät halua erillistä lisäosaa yhtä suodatinta varten, koodinpätkä, joka käyttää rest_authentication_errors-koukkua.
  • Lisää sääntö.htaccess-tiedostoon: esto Apache-palvelimen tasolla, kova keino ilman poikkeuksia.

Tapa 1: Disable WP REST API -lisäosa, yksi klikkaus

Yksinkertaisin ja turvallisin tapa. Disable WP REST API -lisäosa WordPress.orgissa tekee tasan yhden asian: se sulkee REST API:n kaikilta, jotka eivät ole kirjautuneet hallintapaneeliin. Kirjautuneet käyttäjät toimivat normaalisti, lohkoeditori, muut lisäosat, kaikki toimii.

Asennus: Lisäosat → Lisää uusi, hae "Disable WP REST API", asenna ja aktivoi. Lisäosa painaa 4 kt ja alkaa toimia välittömästi. Asetuksia ei ole.

Varmistus: kirjaudu ulos hallintapaneelista ja avaa https://вашсайт.ru/wp-json/ selaimessasi. Näet viestin: {"code":"rest_login_required","message":"REST API restricted to authenticated users.","data":{"status":401}}. Tämä tarkoittaa, että REST API on suljettu ulkoisilta pyynnöiltä.

Lisäosan tekijällä, Jeff Starrilla, on 15 vuoden kokemus WordPressistä ja hän on kirjoittanut useita kirjoja aiheesta. Koodi on avointa, lisäosa päivittyy säännöllisesti: heinäkuussa 2026 versio 2.6.8, testattu WordPress 7.0.2:een asti.

Hyvät puolet:

  • Asennus vie minuutin, ei asetuksia
  • 4 kt koodia, ei vaikuta sivuston nopeuteen
  • Ei koske hallintapaneeliin tai lohkoeditoriin
  • Yli 30 000 aktiivista asennusta, arvosana 4,8 WordPress.orgissa

Huonot puolet:

  • Estää vain kirjautumattomat käyttäjät, kirjautunut käyttäjä näkee koko REST API:n
  • Ilmaisversiossa ei tarkempia asetuksia (Pro-versio, REST Pro Tools, lisää suodatuksen roolin ja IP:n mukaan)

Hinta: Ilmainen. Pro-versio, REST Pro Tools, kehittäjän sivustolla.

Lataa: 🔗 Disable WP REST API WordPress.orgissa

Tapa 2: Rajoitus Solid Securityn kautta

Jos sinulla on jo Solid Security (entinen iThemes Security) asennettuna, et tarvitse erillistä lisäosaa REST API:a varten. Tietoturva-asetuksissa on valmis kytkin.

Polku: Security → Settings → Advanced → WordPress REST API. Valitse pudotusvalikosta "Restricted Access", jolloin REST API on käytettävissä vain kirjautuneille käyttäjille.

Tarkista samasta osiosta myös XML-RPC-asetus. Jos et käytä WordPressin mobiilisovellusta etkä yhdistä Jetpackia, poista sekin käytöstä. Kaksi rajapintaa, joita tarvitaan harvoin mutta joihin hyökätään usein.

Hyvät puolet:

  • Ei tarvita erillistä lisäosaa, ominaisuus on jo sisäänrakennettu Solid Securityyn
  • Käyttöliittymä selityksineen, koodiin ei tarvitse koskea
  • XML-RPC tulee määritettyä samalla kertaa

Huonot puolet:

  • Toimii vain, jos käytät jo Solid Securityä (sen asentaminen pelkästään tätä varten on ylimitoitettua)
  • Ilmaisversio sulkee REST API:n kokonaan kirjautumattomilta käyttäjiltä, ilman poikkeuksia yksittäisille päätepisteille

Lataa: 🔗 Solid Security WordPress.orgissa

Tapa 3: Koodia functions.php-tiedostoon, ei lisäosia

Jos et halua asentaa lisäosaa yhtä suodatinta varten, tässä on koodinpätkä, joka tekee saman asian. Lisää se lapsiteemasi functions.php-tiedostoon tai Code Snippets -lisäosan kautta.

Varmuuskopioi sivustosi ennen muokkaamista. Virhe functions.php-tiedostossa aiheuttaa valkoisen kuolemanruudun, ja ilman hallintapaneelin pääsyä joudut korjaamaan sen FTP:n kautta.

1/**
2 * Close REST API for unauthorized users.
3 * Authorized users work with API as usual.
4 */
5add_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});

Mitä tässä tapahtuu. rest_authentication_errors-suodatin käynnistyy jokaisessa REST-pyynnössä. is_user_logged_in() tarkistaa, onko kävijä kirjautunut. Jos ei, palautetaan WP_Error koodilla 403, ja WordPress estää pyyntöä etenemästä. Jos käyttäjä on kirjautunut, API toimii rajoituksetta.

Koodin lisäämisen jälkeen tarkista tulos: avaa /wp-json/ incognito-tilassa. Pitäisi palautua 403-virhe.

Tärkeää. Vanha rest_enabled-suodatin on poistettu WordPressin ytimestä. Koodinpätkät, joissa on add_filter('rest_enabled', '_return_false'), joita näkyy vanhoissa oppaissa, eivät toimi WordPress 5.0:sta alkaen. Käytä vain rest_authentication_errors-koukkua.

Tapa 4: Esto.htaccess-tiedoston kautta, palvelimen tasolla

Radikaali keino. Sääntö .htaccess-tiedostossa estää pyynnöt osoitteeseen /wp-json/ ennen kuin WordPress edes käynnistyy. Apache-palvelin palauttaa 403:n ilman, että PHP:hen koskaan päästään.

Sopii, kun:

  • REST API:a ei varmasti tarvita missään muodossa, et sinä etkä lisäosat;
  • palvelin käyttää Apachea (Nginxille sääntö kirjoitetaan location-lohkon kautta);
  • palvelinasetusten muokkaaminen on sinulle tuttua.

Lisää sivuston juuressa olevaan .htaccess-tiedostoon:

1<IfModule mod_rewrite.c>
2RewriteEngine On
3RewriteCond %{REQUEST_URI} ^/wp-json/ [NC]
4RewriteRule .* - [F]
5</IfModule>

Sääntö käynnistyy mistä tahansa URL-osoitteesta, joka alkaa /wp-json/. [F]-lippu tarkoittaa 403 Forbidden -vastausta, [NC]-lippu tekee vertailusta kirjainkoosta riippumattoman.

Muista ottaa kopio .htaccess-tiedostosta ennen muokkaamista. Syntaksivirhe kaataa koko sivuston 500-virheellä.

Tämän lähestymistavan suurin haittapuoli: kaikki REST-pyynnöt estetään poikkeuksetta. Jos yhteydenottolomake lakkaa toimimasta muokkauksen jälkeen (Contact Form 7 käyttää REST API:a), palaa tapaan 1 tai 3.

Katso David McAllenin 6 minuutin yleiskatsaus REST API:n riskeistä: hän näyttää todellisia pyyntöjä osoitteeseen /wp-json/ ja esittelee molemmat lisäosat toiminnassa.

⁉️🤔 UKK

Pitääkö REST API poistaa käytöstä jokaisella sivustolla?

Ei. Jos käytät WordPressin mobiilisovellusta, lohkoeditoria (Gutenberg) tai lisäosia, kuten Contact Form 7 ja WooCommerce, ne tarvitsevat REST API:a. Siinä tapauksessa on parempi olla poistamatta sitä kokonaan, vaan määrittää rooliperusteinen rajoitus.

REST API kannattaa poistaa käytöstä sivustoilla, joilla sitä ei käytetä tarkoituksella: blogit klassisella editorilla, laskeutumissivut, esitesivustot. Tällaisissa projekteissa avoin /wp-json/ tarjoaa vain riskejä. Kaksi minuuttia Disable WP REST API -lisäosan asentamiseen, ja hyökkäysvektori on suljettu.

Miten varmistan, että REST API on todella poistettu käytöstä?

Avaa https://вашсайт.ru/wp-json/ selaimessasi incognito-tilassa (sinun on oltava kirjautuneena ulos). Jos näet 401- tai 403-virheen, REST API on suljettu. Jos JSON-dataa näytetään, suojaus ei toimi, tarkista asetuksesi.

Komentorivikin toimii: curl -I https://вашсайт.ru/wp-json/wp/v2/users. Vastauskoodi 200 tarkoittaa, että käyttäjälistaa tarjoillaan julkisesti, mikä on hälytysmerkki, suojaus on hienosäädettävä.

Rikkooko REST API:n poistaminen käytöstä lohkoeditorin?

Ei, jos käytät tapoja 1-3. Disable WP REST API -lisäosa, Solid Security ja rest_authentication_errors-koodinpätkä päästävät kaikki kirjautuneet käyttäjät läpi. Lohkoeditori toimii, koska olet kirjautuneena hallintapaneeliin.

Tapa 4 (.htaccess) on poikkeus. Palvelintason esto katkaisee kaikilta erotuksetta, ja lohkoeditori lakkaa toimimasta. Jos hallintapaneeli hajoaa .htaccess-tiedoston muokkauksen jälkeen, palaa tapaan 1 tai 3.

Kumpi on turvallisempaa: lisäosa vai koodi functions.php-tiedostossa?

Suojauksen kannalta molemmat vaihtoehdot ovat samanarvoisia, ne käyttävät samaa WordPress-mekanismia. Ero on mukavuudessa ja ylläpidossa.

Disable WP REST API -lisäosa päivittyy automaattisesti, ei ole riippuvainen teemasta eikä katoa, kun vaihdat teemaa. Koodi functions.php-tiedostossa on niille, jotka vastustavat periaatteesta lisäosien asentamista yhtä toimintoa varten. Valitse oman hallintatapasi mukaan, sillä ei ole vaikutusta tietoturvaan.

Voinko sulkea vain /users-päätepisteen ja jättää muut auki?

Voit, mutta se on hienosäätötehtävä. Tämän artikkelin ilmaiset työkalut estävät REST API:n kokonaan kirjautumattomilta käyttäjiltä.

Jos haluat pitää joitakin päätepisteitä auki ja sulkea toisia, käytä REST Pro Toolsia (Disable WP REST API -lisäosan Pro-versiota) tai rest_endpoints-suodatinta functions.php-tiedostossa. Sinun on lueteltava sallitut reitit erikseen, puolen tunnin tehtävä, jos tunnet WordPressin REST API:n rakenteen.

Olet lukinnut REST API:n, mitä seuraavaksi?

REST API on vain yksi hyökkäysvektori. Sulkemalla sen poistit boteilta helpoimman sisäänpääsypisteen, mutta tämä ei korvaa täysimittaista suojausta.

Lyhyesti: tapa 1 (Disable WP REST API -lisäosa) ratkaisee ongelman kahdessa minuutissa. Asenna se, tarkista /wp-json/ incognito-tilassa, varmista, että yhteydenottolomakkeesi toimii, valmista. Riskit on vähennetty.

Seuraava kerros on palomuuri ja väsytyshyökkäysten esto. Aloita ilmaisella Solid Securityllä: se sulkee REST API:n, XML-RPC:n ja salasanojen väsytyshyökkäykset yhdestä käyttöliittymästä. Kerro kommenteissa, mitä tietoturvalisäosaa käytät.