WPLounge
beveiligingsrisico API
Home » WordPress Algemeen » Beveiligingsrisico’s van de JSON REST API in WordPress

Beveiligingsrisico’s van de JSON REST API in WordPress

Vanaf WordPress 4.4 is de JSON REST API toegevoegd aan het CMS. Tenzij je een ervaren WordPress ontwikkelaar bent is de kans groot wat je misschien geen idee hebt wat de WordPress REST API eigenlijk is. 

Affiliate disclaimer:
In onze artikelen en op onze pagina's staan affiliate links. Wanneer je via één van deze links een aankoop doet, ontvangen wij een (meestal kleine) commissie van de verkoper. Wij geven altijd onze eerlijke mening over producten. Klik hier voor meer informatie.

Hoewel de technische details wat ingewikkeld zijn, is de basis van wat de REST API doet makkelijk te volgen. Deze API helpt ontwikkelaars om WordPress te verbinden met andere websites en applicaties.

Wat is een API?

API staat voor Application Programming Interface en zorgt ervoor dat twee applicaties met elkaar kunnen communiceren. Wanneer je bijvoorbeeld een website bezoekt, stuurt de browser een verzoek naar de server waarop die website zich bevindt. De API van die server ontvangt het verzoek van je browser, verwerkt het en stuurt alleen de gegevens terug die nodig zijn om op de website weer te geven.

TIP VAN WPLOUNGE
Divi theme & Divi Builder
Bij Elegant Themes ontvang je meer dan
85 premium WordPress themes (waaronder Divi!) voor maar 89 dollar!

Bekijk de themes »»
Lees meer over Divi.

Maar wat is dan een REST API?

REST staat voor Representational State Transfer. Het is een standaard client-server protocol dat je website beschikbaar maakt als webservice. Dit betekent dat andere applicaties of websites informatie van je website kunnen ophalen zonder dat daar een browser voor nodig is. Hier zitten echter ook beveiligingsrisico’s aan vast, laten we eens kijken waarom dat zo is.

Beveiligingsrisico’s van JSON REST API

Als de JSON REST API geactiveerd is op een WordPress website zijn er verschillende URL’s beschikbaar om informatie van gebruikers, media en berichten te kunnen zien. Zo kan je URL ‘<voorbeeld.nl>/wp-json/wp/v2/users ‘ openen en krijgen we een lijst te zien met alle gebruikers van de website. Merk op dat de JSON REST informatie ook het ID-nummer, de URL, beschrijving, link, avatar_urls en meer weergeeft.

 

wp-jsos gebruikers
(klik voor groter)

We hebben de domeinnaam ‘voorbeeld.nl‘ gebruikt, dit is echter een fictieve domeinnaam en gebruiken we alleen om een voorbeeld te geven. Zoals je ziet geeft de REST API alle gebruikersinformatie weg en kan leiden tot privacy- en beveiligingsproblemen.

Webcontent gevoelig voor scraping

De REST API geeft niet alleen informatie weg van de gebruikers op een WordPress website, maar kan ook een lijst geven van alle berichten die op een website zijn opgeslagen. Kijk maar eens op een willekeurige WordPress website en open de volgende URL: https://<voorbeeld.nl>/wp-json. 

WP-json informatie
(klik voor groter)

Van berichten, pagina’s, categorieën, tags, opmerkingen, media en meer, al deze opgehaalde informatie is publiekelijk beschikbaar. De REST API zorgt ervoor dat andere geautomatiseerde formulieren deze informatie makkelijk kunnen lezen en zo content eenvoudig kunnen kopiëren. Maar er is meer, kijk maar eens op https://<voorbeeld.nl>/wp-json/wp/v2/media waar alle beschikbare media staat, ook afbeeldingen en andere media die niet zijn gepubliceerd..

Hoe kan je de JSON REST API uitschakelen?

Controleer voordat je de REST API uitschakelt, of er geen plugins zijn die de API gebruikt. Daarna kan je met de gratis WP Hardening Plugin de WP REST API met een enkele klik deactiveren. Na het installeren en activeren van de plugin kan je via het wp-admin dashboard menu ‘WP Hardening > Security Fixers’  de optie ‘Disable WP API JSON‘ inschakelen.

Disable WP API JSON

De JSON REST API handmatig uitschakelen

Deze methode is geschikt voor de meer ervaren WordPress gebruikers, die liever geen plugin gebruiken om de REST API uit te schakelen. Voeg de volgende code snippet toe aan het functions.php bestand van je WordPress thema.

add_filter('json_enabled', '__return_false');
add_filter('json_jsonp_enabled', '__return_false');

Na het deactiveren van de API zie je een bericht in je browser die aangeeft dat alle REST API verzoeken zijn geblokkeerd.

REST API disabled

Dat is alles, met succes is zijn ongeautoriseerde REST API verzoeken uitgeschakeld op je WordPress website. We hopen dat dit artikel je heeft geholpen om inzicht te krijgen in de API en welke veiligheidsrisico’s er aan vast kunnen zitten.

❓ Wat is REST API?

Deze API helpt ontwikkelaars om WordPress te verbinden met andere websites en applicaties.

💡 Wat zijn de beveiligingsrisico’s van JSON REST API

Als de JSON REST API geactiveerd is op een WordPress website zijn er verschillende URL’s beschikbaar om informatie van gebruikers, media en berichten te kunnen zien.

✔ Hoe kan je de JSON REST API uitschakelen?

Met de juiste WordPress plugin kan je eenvoudig de JSON REST API uitschakelen

Beoordeel dit artikel

Roger.Overdevest

Roger is een SEO specialist met veel passie voor WordPress

1 reactie

  • Beste Roger,
    Dank voor deze interessante post. Betekent het veiligheidsrisico van de JSON REST API dat er helemaal geen veilige manier is om er externe applicaties mee te gebruiken? Er is bijvoorbeeld een bekend online boekhoudprogramma dat er mee werkt. Het ligt natuurlijk nogal gevoelig als dat niet veilig blijkt te zijn.
    Mvg Erik