Signed cookies - zapis i odczyt

Przeglądam tutorial:


i natknąłem się na kod, który zapisuje i odczytuje cookies.

Zapis wygląda tak:
cookies.permanent.signed[:remember_token] = [user.id, user.salt]

Natomiast odczyt:
cookies.signed[:remember_token]
zwraca ponownie tablice z wartościami [user.id, user.salt]

Przejrzałem cookies w swojej przeglądarce i wartość ciasteczka o nazwie remember_token jest zaszyfrowana.
Dlatego zastanawiam się, w jaki sposób aplikacja Rails odczytuje ponownie zaszyfrowane wartości [user.id, user.salt].

Jeżeli odczytuje je na podstawie jakiegoś klucza również zapisanego jako ciasteczko, to każdy może te wartości odczytać.
Jeżeli odczytuje je na podstawie jakiejś zmiennej, która jest charakterystyczna dla danej aplikacji Rails, to prawdopodobnie taka zmienna trzymana jest w pamięci i będzie inna po ponownym uruchomieniu aplikacji.

[quote=kkrol]Jeżeli odczytuje je na podstawie jakiegoś klucza również zapisanego jako ciasteczko, to każdy może te wartości odczytać.
Jeżeli odczytuje je na podstawie jakiejś zmiennej, która jest charakterystyczna dla danej aplikacji Rails, to prawdopodobnie taka zmienna trzymana jest w pamięci i będzie inna po ponownym uruchomieniu aplikacji.[/quote]
Nie oraz nie.
Poszukaj sobie frazy “secret token” w plikach w katalogu config/ Twojej aplikacji :slight_smile:

Znalazłem plik, rozumiem że nie powinien być on udostępniany np. na githubie?
Jak go w takim razie przechowywać używając systemu kontroli wersji?

Możesz taki token trzymać w pliku .yml (typu application.yml, ładowany do stałej przy starcie aplikacji), który sobie wrzucisz do gitignore.