2013-08-29 11 views

risposta

6

Il secret_token viene utilizzato dal cookie_store, utilizzato per memorizzare la sessione lato client di dati. Here è un bel resoconto su come eseguire codice arbitrario usando un secret_token conosciuto.

Questo cookie_store è più precisamente ActionDispatch::Session::CookieStore, un middleware rack che carica i carichi nella pila del rack quando si imposta session_store(:cookie_store). Quindi se lo stai impostando su :session_store dovresti stare bene non impostando secret_token.

È possibile esaminare Rails.configuration.middleware per vedere tutti i vostri middleware e confermare ActionDispatch::Session::CookieStore non è uno di loro.

FWIW, un'applicazione di rails 3.2 inizierà con secret_token non impostata, ma le richieste che provano a impostare le variabili di sessione avranno esito negativo 500. Non ho rintracciato esattamente dove si verifica l'errore.

Ma se non si sta impostando secret_token e non si dispone di ActionDispatch::Session::CookieStore nella pila del rack e l'app sembra funzionare, si è al sicuro da quel particolare attacco.

L'altro uso di secret_token è digest authentication.

In sintesi, per rispondere alla domanda, se non si sta utilizzando l'autenticazione digest e non si utilizza cookie_store (ad esempio, impostando session_store(:cache_store)), quindi secret_token non è importante.

0

Il viene anche utilizzato per l'autenticazione di base HTTP e Digest Access.

Rais 3.2 HTTP Basic and Digest Access Authentication source file

Basic and Digest Access Authentication RFC

+0

"I am not aware" non è molto utile. OP non era a conoscenza, quindi la domanda. – cluesque

+0

@cluesque, beh, grazie alla tua risposta ora sono pienamente consapevole che secret_token è usato solo per i cookie e l'autenticazione digest. A proposito: "e la tua app sembra funzionare" è altrettanto utile "Non ne sono a conoscenza" –

Problemi correlati