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.
"Nie jestem świadomy" nie jest aż tak pomocny. OP nie był świadomy, stąd pytanie. – cluesque
@ 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" –