Sto cercando di implementare protezioni contro gli attacchi CSRF nella mia API, che ho sviluppato utilizzando GAE Endpoint con oAuth2 richiesto per tutti i metodi.CSRF su GAE Endpoint con oAuth
Prima di implementare una protezione specifica, sto provando a interrompere la mia app (la CSRF sembrava semplice a prima vista). Ma proprio non può farlo funzionare.
Quando faccio riferimento al mio endpoint in un'altra pagina, il browser aggiunge le informazioni sui cookie ma non l'intestazione Autorizzazione con il token di accesso al portatore. Questo non sembra essere sufficiente, poiché i miei endpoint restituiscono automaticamente 401 con un'intestazione www-authenticate:Bearer realm="https://accounts.google.com/"
.
Come ho già detto, non ho una protezione specifica contro CSRF. Ma l'utilizzo di Google Cloud Endpoint con oAuth2 sotto HTTPS mi garantisce la protezione da questo tipo di attacco "gratuitamente"?
- modifica per affrontare commento
Ho provato un semplice attacco CSRF. Ho ottenuto una pagina con un <img src="https://bla-bla-bla-appspot.com/_ah/api/myapi/v1/resource.getMethod">
. Poi ho avuto accesso a questa pagina mentre avevo la mia app aperta in un'altra scheda, quindi il mio browser avrebbe inviato le mie informazioni di autenticazione. E invia il cookie, ma non il mio token oAuth).
Non ho nemmeno provato a fare un POST, se ho "hackerato" un GET sarebbe già grandioso.
Non sono sicuro se hai visto [questo] (http://stackoverflow.com/questions/16688489/cloud-endpoints-csrf-protection) e l'articolo che è legato nei commenti, ma sembra (se ho capito bene) che con OAuth2 CSRF non è un problema. Potrei sbagliarmi comunque, se trovi qualche risposta altrove, per favore condividi (; – Sasxa
Cosa vuoi dire concretamente con "Quando faccio riferimento al mio endpoint in un'altra pagina, il browser aggiunge le informazioni sui cookie ma non l'intestazione Autorizzazione con l'accesso al portatore token "? Puoi mostrare il codice? – Nick