как Rails проверяет, изменен ли cookie session_id клиентом - PullRequest
0 голосов
/ 20 января 2011

В rails он сгенерирует session_id, если правильно настроить конфигурации сеансов, тогда после рендеринга веб-страницы seesion_id будет храниться на клиенте с cookie; однако, если значение cookie изменяется клиентом перед отправкой запроса на веб-сервер, как это проверить? Теперь я не могу найти никаких подсказок для рельсов, чтобы проверить изменения, если они не проверяются, и измененный seesion_id существует в хранилище сеансов веб-сервера, данные другого сеанса будут отображаться для текущего пользователя браузера.

Если у кого-то есть ясный вопрос, можете ли вы объяснить это для меня? заранее спасибо.

1 Ответ

2 голосов
/ 20 января 2011

Cookie имеет криптографическую подпись. См:

https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/middleware/cookies.rb

Обратите внимание, что подписание куки не означает то же самое, что и его шифрование. Пользователь может просмотреть содержимое своего сеанса с небольшим переворотом, но не может изменить его, не нарушив подпись.

Если вы хотите скрыть содержимое ваших сеансов от пользователя, не используйте хранилище cookie.

...