2013-08-29 5 views

Odpowiedz

6

secret_token jest używany przez cookie_store, używane do przechowywania danych sesji po stronie klienta. Here jest miłym zapisem, jak wykonać dowolny kod przy użyciu znanego secret_token.

Ten cookie_store jest dokładniej ActionDispatch::Session::CookieStore, oprogramowanie pośredniczące w szafie, które ładuje obciążenia do stosu stojaka po ustawieniu session_store(:cookie_store). Więc jeśli ustawisz to na :session_store powinieneś być w porządku, nie ustawiając secret_token.

Możesz sprawdzić Rails.configuration.middleware, aby zobaczyć wszystkie swoje programy pośrednie i potwierdzić, że ActionDispatch::Session::CookieStore nie jest jednym z nich.

FWIW, aplikacja szynowa 3.2 będzie uruchamiana z secret_token nie ustawiona, ale próba ustawienia zmiennych sesyjnych zakończy się niepowodzeniem 500. Nie wykryłem dokładnie miejsca, w którym wystąpiła awaria.

Ale jeśli nie ustawisz secret_token, a nie masz ActionDispatch::Session::CookieStore w stosie stelaża, a Twoja aplikacja działa, jesteś bezpieczny przed tym konkretnym atakiem.

Inne użycie secret_token to digest authentication.

Podsumowując, aby odpowiedzieć na pytanie, jeśli nie używasz uwierzytelniania digest i nie używasz cookie_store (np. Ustawiając session_store(:cache_store)), to secret_token nie jest ważne.

0

Urządzenie Application.config.secret_token służy również do uwierzytelniania HTTP Basic i Digest Access.

Rais 3.2 HTTP Basic and Digest Access Authentication source file

Basic and Digest Access Authentication RFC

+0

"Nie jestem świadomy" nie jest aż tak pomocny. OP nie był świadomy, stąd pytanie. – cluesque

+0

@ Cluque, cóż, dzięki twojej odpowiedzi teraz jestem w pełni świadomy, że secret_token jest używany tylko do ciasteczek i uwierzytelniania digest. Przy okazji: "i Twoja aplikacja działa" jest równie pomocne "Nie jestem świadomy" –

Powiązane problemy