Ответ 1
Я предлагаю вам заглянуть в раздел раздела руководства по безопасности рельсов - он отвечает на ваш вопрос подробно и поможет вам понять, как он работает.
жесткий диск, основная память или где-то еще. Я не спрашиваю, где они хранятся в базе данных.
Я предлагаю вам заглянуть в раздел раздела руководства по безопасности рельсов - он отвечает на ваш вопрос подробно и поможет вам понять, как он работает.
По умолчанию рельсы используют файлы cookie для хранения данных сеанса. Все данные хранятся в клиенте, а не на сервере.
Когда вы устанавливаете session[:user_id] = 3
внутри действия вашего контроллера, ответ, отправленный из этого действия, будет иметь заголовок Set-Cookie: my-session-cookie
.
С этого момента браузер автоматически отправит заголовок Cookie: my-session-cookie
обратно на сервер по каждому запросу.
Вот как обычно выглядит файл my-session-cookie:
_Hello_session=BAh7B0kiD3%3D%3D--dc40a55cd52fe32bb3b84ae0608956dfb5824689
что означает:
_Hello_session=<encrypted user_id=3>--<digital signature>
Hello
- это имя вашего приложения Rails.a=b
string, зашифровано.И шифрование (и дешифрование), и подписание (и проверка) выполняются с использованием секретного ключа на стороне сервера secrets.secret_key_base
, хранящегося в /config/secrets.yml
.