numerose risorse sostengono che (source1) (source2)CSRF è obbligatorio per un'applicazione REST di backend che utilizza solo JSON?
Per le risorse esposte dai servizi web RESTful, è importante assicurarsi che qualsiasi PUT, POST, e DELETE richiesta viene protetto dal Cross Site Request Forgery.
CSRF è obbligatoria per tutte le applicazioni con un minimo di preoccupazione per la sicurezza web
Tuttavia the Spring Security docs dicono:
uso protezione CSRF per qualsiasi richiesta che possa essere elaborato da un browser utenti normali. Se si sta creando solo un servizio utilizzato da client non browser, è probabile che si desideri disabilitare la protezione CSRF.
Quindi, è corretto disabilitare CSRF per un'applicazione che?
- espone solo un'API REST
- consuma solo JSON (controlli le richieste di intestazione Content-Type)
bene, cosa fa l'applicazione? se il json accetta è qualcosa come "{" command ":" nuke the universe "}', potresti voler avere un BIT di WEE di protezione su di esso per assicurarti che il piccolo scriptkiddy accanto non possa emettere quel comando ... –
Il fatto che non serva HTML e consumi solo JSON non è ciò che conta. Ciò che conta è: le richieste destinate al servizio REST dovrebbero provenire dai client browser o meno. –
@JBNizet Vengono da Javascript in esecuzione nei browser, ma non dall'invio di moduli HTML poiché è impossibile inviare un modulo con tipo di contenuto application/json. –