Hoe beveilig je een endpoint?
Met vier maatregelen die je alle vier nodig hebt: aanmelden, versleutelen, beperken en bijhouden.
Een endpoint staat op internet en is dus door iedereen te vinden. Onbeveiligd is het een open deur naar je gegevens.
De meeste lekken die ik tegenkom, komen door de eerste maatregel.

Sleutels buiten je code
Zet een sleutel of wachtwoord nooit in een bestand dat in je code terechtkomt. Gebruik omgevingsvariabelen of een instellingenscherm.
Sleutels die per ongeluk gedeeld worden, zijn de meest voorkomende oorzaak van misbruik. Meer daarover lees je bij backend.
Alleen over een versleutelde verbinding
Alles via https, zonder uitzondering. Een sleutel die over een onbeveiligde verbinding gaat, kan onderweg meegelezen worden.
Weiger verzoeken die niet versleuteld binnenkomen in plaats van ze door te sturen.
Niet meer rechten dan nodig
Een koppeling die alleen bestellingen hoeft op te halen, hoeft ze niet te kunnen verwijderen.
De meeste diensten laten je per sleutel instellen wat er mag. Doe dat ook echt.
Mijn vuistregels
- Sleutels nooit in je code, altijd in je instellingen.
- Per koppeling een eigen sleutel met eigen rechten.
- Alleen versleutelde verbindingen toestaan.
- Houd bij wie wanneer wat opvroeg.
Die tweede maakt het mogelijk om één koppeling af te sluiten zonder alle andere te raken.
Beperken en bijhouden
Stel een limiet in op het aantal verzoeken per minuut. Dat beschermt je tegen misbruik en tegen een koppeling die op hol slaat.
En houd een logboek bij: wie, wanneer, welk endpoint en welk antwoord. Meer daarover lees je bij wat de foutcodes betekenen.
Bij WordPress
De ingebouwde interface staat standaard deels open. Schakel uit wat je niet gebruikt, en gebruik toepassingswachtwoorden in plaats van je eigen wachtwoord.
Meer daarover lees je bij api.