Dopo un'ispezione di sicurezza di un sito su cui è in esecuzione Wordpress con un'API REST, lo scanner ha contrassegnato la rotta / wp-json / come vulnerabilità a causa di una politica CORS molto flessibile che consente a terze parti di interagire con il servizio. Tuttavia, non riesco a trovare una fonte concreta di informazioni sensibili che potrebbero essere rubate senza richiedere ulteriori informazioni alla vittima. Ad esempio, l'API REST di Wordpress offre diversi modi per autenticare gli utenti, quindi ho pensato che forse uno di loro sarebbe stato vulnerabile.
- Autenticazione basata su cookie. Sembra essere utile solo per temi e plugin e l'utente deve fornire un nonce per avere accesso alle risorse.
- Autenticazione di base. Richiede un'intestazione codificata di base 64 con le credenziali dell'utente.
- OAuth. Deve essere configurato fornendo token ai client e registrando tali client nel servizio principale e penso che sia necessario fornire questo token in ogni richiesta.
Se hai altre idee o correzioni, faccelo sapere.
C'è qualche rischio per la sicurezza di avere un'API REST con CORS abilitato?
UPDATE:
Come ulteriore chiarimento, in questo caso particolare, le restrizioni Access-Control-Allow-Origin: *
vengono aggirate programmaticamente impostando l'intestazione Access-Control-Allow-Origin
in base all'intestazione Origin
della richiesta. Di solito, questo sarebbe sufficiente per avere preoccupazioni, ma in questo caso, non sono sicuro che i meccanismi di autenticazione offerti dall'API REST siano sufficienti per proteggersi dalle vulnerabilità correlate a CORS.