Файли cookie зашифровані за замовчуванням у Rails 4
У Rails 4 файли cookie CookieStore зашифровані та підписані за замовчуванням:
Якщо ви лише secret_token
встановили, ваші файли cookie будуть підписані, але не зашифровані. Це означає, що користувач не може змінити їх, user_id
не знаючи секретного ключа вашого додатка, але може легко прочитати їх user_id
. Це було за замовчуванням для програм Rails 3.
Якщо ви secret_key_base
встановили, ваші файли cookie будуть зашифровані. Це робить крок далі, ніж підписані файли cookie, оскільки зашифровані файли cookie не можуть бути змінені або прочитані користувачами. Це стандартне значення, починаючи з Rails 4.
Якщо ви обидва secret_token
і secret_key_base
встановили, ваші файли cookie будуть зашифровані, а підписані файли cookie, згенеровані Rails 3, будуть прозоро прочитані та зашифровані, щоб забезпечити плавний шлях оновлення.
Сховище активних записів застаріло в Rails 4
Ця відповідь зараз застаріла щодо Rails 4. Сховище Active Record Session застаріло та видалено з Rails, тому наступні генератори більше не працюватимуть:
На це було вказано у цій відповіді . Причиною того, що Active Record Session Store був застарілий, є те, що читання / запис у базу даних погано масштабується, коли у вас є велика кількість користувачів, які отримують доступ до вашої програми, як зазначено в цьому дописі в блозі :
... одна з основних проблем сховища сесій Active Record полягає в тому, що він не є масштабованим. Це створює непотрібне навантаження на вашу базу даних. Як тільки ваша програма отримує великий обсяг трафіку, таблиця бази даних сеансів постійно бомбардується операціями читання / запису.
Станом на Rails 4, сховище сесій Active Record було вилучено з основного фреймворку і тепер застаріло.
Якщо ви все ще хочете використовувати Active Record Session Store, він все ще доступний як дорогоцінний камінь .
Поточні практики сесії Rails
Щоб отримати більш актуальні найкращі практики для сесій Ruby on Rails, я раджу ознайомитися з останніми версіями Посібника з безпеки Ruby on Rails .