Мне просто интересно, зачем хранить сеанс в базе данных? Есть ли какое-либо преимущество для хранения сеанса в базе данных?Rails: Преимущества хранения сеанса в базе данных?
ответ
Преимущество базы данных или memcached заключается в том, что данные сеанса не могут быть изменены на стороне клиента и что вы можете хранить больший объем данных, чем с помощью файлов cookie (4kB).
Если ваш сеанс хранится в файлах cookie или в базе данных, а веб-служба перезапускается, данные сеанса не теряются. Он может быть потерян только в том случае, если он хранится в memcached.
Если сервер сбалансирован по нагрузке, данные сеанса передаются на веб-сервер, обслуживающий этот запрос, поэтому это не проблема с сеансами куки-файлов, базы данных или memcached.
Преимущество куки-файлов по memcached или базе данных заключается в том, что клиент хранит данные сеанса, поэтому сервер не несет за это ответственности.
Имейте в виду, что в любом случае cookie будет передаваться клиенту и из него, потому что ссылка на сеанс еще должна поддерживаться.
две причины, я могу думать о том, что:
1) Если веб перезапуске службы, данные сеанса не потеряли
2) В сбалансированной среде нагрузки, данные сеанса сохраняются в центральном месте, то есть любой сервер может обслуживать запрос и иметь доступ к данным сеанса.
Есть по крайней мере три причины, о которых я могу думать. Если вы сохраните сеанс в БД, вы можете:
- легко получить доступ к нему на любом экземпляре Rails, который вы выполняете. Поэтому, если у вас несколько машин, вам не нужно беспокоиться о распространении данных сеанса.
- У вас нет сеанса сеанса сеанса 4kb, который используется только при использовании хранилища сеансов файлов cookie. Хотя вы не должны использовать сеанс для хранения объектов, вы можете использовать эту функцию в определенный день.
- При использовании и RDBM (а не Memcached или в любом другом не сохраненном хранилище) вам не нужно беспокоиться о потере данных сеанса.
Одно из менее очевидных и небольших преимуществ для сеансов в базе данных заключается в том, что если вам нужно подсчитать текущие сеансы и просмотреть имена других зарегистрированных пользователей, это проще реализовать, чем если бы вы использовали файлы cookie только для хранить данные сеанса или memcached.
другое преимущество заключается в том, чтобы обрабатывать сеанса истечения на стороне сервера, как описано в разделе 2.9:
http://guides.rubyonrails.org/security.html
«Однако клиент может редактировать куки, которые хранятся в веб-браузер, так истекающий сеансов на сервере безопаснее ».
class Session < ActiveRecord::Base
def self.sweep(time = 1.hour)
if time.is_a?(String)
time = time.split.inject { |count, unit| count.to_i.send(unit) }
end
delete_all "updated_at < '#{time.ago.to_s(:db)}' OR
created_at < '#{2.days.ago.to_s(:db)}'"
end
end
- 1. Каковы преимущества и недостатки хранения файлов в базе данных?
- 2. Каковы наилучшие методы хранения данных сеанса PHP в базе данных?
- 3. Zend - Сохранение данных сеанса в базе данных
- 4. Ruby On Rails проблема хранения сеанса
- 5. Сегмент хранения Codeigniter в базе данных
- 6. Сегменты Rails, хранящиеся в базе данных
- 7. Лучшее решение для хранения файлов в базе данных (Rails)
- 8. Преимущества регенерации сеанса?
- 9. Любые преимущества хранения данных sql по вертикали?
- 10. Преимущества метаданных интерфейса в базе данных
- 11. Безопасный способ хранения данных в базе данных
- 12. - эффективный способ хранения данных в базе данных?
- 13. хранения данных в базе данных (Postgres)
- 14. Шифрование данных для хранения в базе данных
- 15. я использую ci_sessions для хранения данных сеанса
- 16. Подключиться к базе данных без использования сеанса
- 17. Преимущества хранения hex в DB над файлом
- 18. Преимущества хранения BINARY в MySQL
- 19. Хранение данных сеанса в базе данных И memcache
- 20. Альтернатива базе данных для хранения данных?
- 21. Проблема хранения арабских символов в базе данных
- 22. Необходимость хранения байт-кода в базе данных
- 23. Excel лист для хранения в базе данных
- 24. Symfony2 \ Doctrine - массив хранения в базе данных
- 25. Обоснование хранения XML в реляционной базе данных
- 26. Простая проблема хранения строк в базе данных
- 27. Parse XML для хранения в базе данных
- 28. Недостатки хранения изображений в базе данных?
- 29. Стандартный способ хранения имен в базе данных
- 30. Шифрование пароля для хранения в базе данных
Возможно. Защищает ли он какой-то взлом? – Zeck 2010-11-25 15:38:01
Частично да, есть последствия для безопасности для хранения данных сеанса в файлах cookie: http://guides.rubyonrails.org/security.html#session-storage. – bmancini 2010-11-25 16:16:14
Что касается №2, то это преимущество также имеет хранилище на основе файлов cookie по умолчанию. Не то, чтобы у него не было собственных проблем, но это преимущество не уникально для хранилища DB/Memcache. – coreyward 2011-01-11 18:39:36