2010-10-31 19 views
7

Una volta ricevuto il mio token di accesso per un sito (ad esempio Facebook) utilizzando OAuth, quanto è importante mantenere questo segreto? Potrebbe accadere qualcosa di malevolo se qualcuno ne prendesse uno?Quanto è importante mantenere segreto il token di accesso di OAuth?

Mi chiedevo se sarebbe una cattiva idea salvare il token in un cookie o sessione.

+0

Si potrebbe non voler memorizzare in un cookie, ma una sessione è OK. L'idea è che i cookie siano considerati "input dell'utente" e non siano affidabili (a meno che non si utilizzino cookie firmati), il che significa che tecnicamente dovresti interrogare il tuo database utente per verificare che il token di accesso sia valido prima di usarlo. Questo è già stato fatto per gli ID di sessione a livello di sessione nella maggior parte dei framework web. –

+2

Oltre alla validità, sono più preoccupato per la sicurezza. Così ho preso l'access_token che ho ricevuto da facebook e su un altro computer ha funzionato curl -F 'access_token = 162032318056 | 2.0r19NN8CJ3qiz2e0dA_G6w __. 3600.1288576800-6423201 | q7GD-dWTEvWoqEZjZ77Ga_ddhwA' -F 'message = TEST' https://graph.facebook.com/me/feed Questo comando ha postato TEST sulla mia bacheca. Quindi sono preoccupato che un utente malintenzionato possa leggere i cookie di qualcuno, prendere il token di accesso che hanno ricevuto da un sito e quindi essere in grado di eseguire comandi privilegiati su un account Facebook di qualcuno. Da questo test sembra che sia possibile –

+0

Brad, hai trovato una soluzione? A parte la sessione o un cookie, dove altrimenti lo memorizzerebbe? Salvarlo in DB ogni volta che l'utente effettua il login e poi interrogarlo sembra un'idea ingombrante nel migliore dei casi ... – Alexandra

risposta

4

Aggiornamento: se si sta connettendo l'utente con il sdk javascript, l'ID utente e i token di accesso sono già memorizzati nei cookie per il sito. Controlla i cookie http inviati. Se non lo sono, controlla la documentazione di FB.Init, poiché FB.Init ha un parametro booleano dei cookie che puoi impostare in modo che crei un cookie per te chiamato fbs_ {APPID}. This post parla di quel cookie.

+0

Sembra che una volta ottenuto il token di accesso non ho bisogno di altri tasti per fare cose privilegiate. più credo. Grazie! –

+0

Yuily hai ragione. Ho aggiornato la risposta. – bkaid

2

Sì, il token di accesso è equivalente al nome utente/password. La maggior parte delle implementazioni scadrà il token di accesso dopo qualche tempo, ma mentre è ancora valido deve essere tenuto segreto.

Problemi correlati