...
General guidelines for securing REST based APIs
...
...
Among other things, this will protect Access Tokens that are transferred between HelseID and the API-klient, as well as between API-clients and API endpoints. |
Info |
---|
Perform access control on every endpoint |
...
Even if the API is hidden behind an API Gateway. |
Info |
---|
Require JWTs as security tokens |
...
Info |
---|
Restrict which HTTP methods that are used |
...
Reject every HTTP methods that is not in use by responding with the HTTP status code 405 - "method not allowed" |
Info |
---|
Validate every input parameter Never trust input parameters, take a look at the OWASP Input Validation cheat sheet for detailed explanations Validate the lenght of the input-value, valid ranges and values, format and type All input parameters should be strongly typed Do not accept unexpected or unknown content Use libraries or framworks for validating and sanitizing input values Define limits for data size in requests and reject requests that are too big by responding with the HTTP status code 413 - "Request Entity Too Large" Log errors that occur during input validation, consider implementing rules that temporarily ban API-clients that often fail.
|
Info |
---|
Validate "content types" |
...
If you don’t validate "content type" you open up for injecting and execution of code |
...
...
...
...
...
...
...
Unngå eksponering av endepunkt for administrasjon via internett
...
Vær varsom med feilhåndtering
Svar med generiske feilmeldinger - unngå å avsløre detaljer om feilsituasjonen dersom det ikke er nødvendig
Ikke vis tekniske detaljer som "call stacks" eller intern informasjon til klientapplikasjonen
Info |
---|
Security headers Send "Content-Type" headeren med riktig content type og charset. Send sikkerhetsheaderen "X-Content-Type-Options: nosniff" for å sikre at nettleseren ikke forsøker å sette en annen Content-Type enn det som faktisk ble sendt (dette kan føre til XSS). Send sikkerhetsheaderen "X-Frame-Options: deny" for å beskytte mot "drag'n drop clickjacking" angrep i eldre nettlesere
|
Info |
---|
Riktig bruk av CORS. Ved å levere passende CORS headere signaliserer REST APIet ditt hvilke domener (origins) som har lov til å gjøre JavaScript kall til REST-tjenesten Deaktiver CORS headere hvis kall på tvers av domener ikke støttes eller forventes Vær så spesifikk som mulig, og så generell som nødvendig når du definerer hvilke origins som er gyldige for kall på tvers av domener
|
...
Info |
---|
Make sure your APIs always sends correct HTTP response codes |
Note |
---|
Avoid the exposure of enpoints for administration on the internet |
Note |
---|
Be careful when handling errors |