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.
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.
Inhoud
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.
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.
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.
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.
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.
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
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