
Checklist delle contromisure di sicurezza più importanti in fase di progettazione, test e rilascio della tua API
Una checklist per le più importanti contromisure da mettere in pratica quando strutturiamo, testiamo e rilasciamo le nostre API.
Basic Auth Utilizzare piuttosto dei sistemi standard di identificazione.autenticazione, generazione token, salvataggio password. Utilizzare gli standard.Max Retry e le jail features per il Login.HSTS per evitare attacchi SSL Strip.redirect_uri lato server permettendo solo url verificati nella whitelist.response_type=token).state con un hash random per prevenire il CSRF durante il processo di autenticazione OAuth.GET (lettura), POST (scrittura), PUT/PATCH (sostituzione/modifica), e DELETE (cancellazione), e rispondere con uno status 405 Method Not Allowed se il metodo della richiesta non è appropriato.content-type rispetto all' Accept header (Content Negotiation) per consentire solo i formati supportati (es. application/xml, application/json, ecc.) e rispondere con un 406 Not Acceptable se la risposta non coincide.content-type in base alle strutture accettate (es. application/x-www-form-urlencoded, multipart/form-data, application/json, ecc.).XSS, SQL-Injection, Remote Code Execution, ecc.).credenziali, password, security tokens, o API keys) nell'url, utilizzare piuttosto gli Authorization header.Quota, Spike Arrest, Concurrent Rate Limit)./me/orders piuttosto che /user/654321/orders.UUID.XXE (XML external entity attack).Billion Laughs/XML bomb.X-Content-Type-Options: nosniff.X-Frame-Options: deny.Content-Security-Policy: default-src 'none'.X-Powered-By, Server, X-AspNet-Version ecc.content-type nella chiamata di risposta: se per esempio viene ritornato un application/json forzare il content-type a application/json.credenziali, password, security tokens.200 OK, 400 Bad Request, 401 Unauthorized, 405 Method Not Allowed, ecc).Siate liberi di contribuire a questo progetto facendo un fork, modificandolo e inviando una pull request. Per qualsiasi dubbio inviare un'email all'indirizzo: [email protected].