Вопрос

В главе 8 рельсов Учебное пособие Michael Hartl представляет идею «запомнить токены», чтобы запомнить сеанс, даже после закрытия браузера.Он упоминает, что сессия состоит из того, что токен запомни, который указывает на пользователя, и этот токен хранится в пользовательском объекте.

Ранее в руководстве мы проходим много работы, чтобы ухаживать наши пароли, чтобы наша база данных нарушена, наши пароли все еще безопасны.Тем не менее, с введением вспомогательства_токенов, нарушение базы данных приведет к тому, что токен запоминает простой текст, что делает сеанс простой для формы.

Возможно, есть какая-то присущая «магия» (как обычно кажется в случае) к рельсам, которые предотвращают CSRF даже с правильным, действительным помните токен ... Может ли кто-нибудь просветить меня?

Это было полезно?

Решение

Просто, сохраняя токен сеанса на клиенте (в cookie) позволяет вам уязвимы к атакам CSRF.Чтобы получить приложение безопасным для этого типа атак в Rails, у вас есть помощник, который добавляет токен CSRF на странице

<%= csrf_meta_tags %>
.

и фильтр (protect_from_forgerage)

  class FooController < ApplicationController
    protect_from_forgery :except => :index
.

Для получения дополнительной информации о Grains Security Vision: http://guides.rubyonrails.org/security.html

Другие советы

Нарушение базы данных не дает простой текст запомнить токены.

Мы сохраняем только запомнить токен Digests в базу данных.Они хешируются так же, как пароли в начале.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top