RailsTutorial.org & Remember_Tokens - PullRequest
       4

RailsTutorial.org & Remember_Tokens

0 голосов
/ 10 марта 2012

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

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

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

Ответы [ 2 ]

0 голосов
/ 26 ноября 2014

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

0 голосов
/ 10 марта 2012

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

<%= csrf_meta_tags %>

и фильтр (protect_from_forgery)

  class FooController < ApplicationController
    protect_from_forgery :except => :index

Подробнее о посещении рельсов: http://guides.rubyonrails.org/security.html

...