Насколько легко взломать cookie-файл, созданный CookieStore из приложения Rails? - PullRequest
1 голос
/ 05 августа 2009

Я прочитал кучу вещей, говорящих, что одним из недостатков использования хранилища cookie в приложении Rails является то, что клиент может видеть данные cookie. Тем не менее, я посмотрел на данные cookie, и они зашифрованы. Относительно легко расшифровать данные cookie?

Ответы [ 3 ]

6 голосов
/ 05 августа 2009

Стандартное хранилище cookie в Rails не зашифровано, оно закодировано в Base64. Кодирование Base64 - это просто способ представления двоичных данных в ASCII, и его не следует воспринимать как «шифрование» при любых обстоятельствах; любой может его расшифровать.

2 голосов
/ 05 августа 2009

Сохраненные данные сеанса подписываются с использованием приведенной ниже информации, которую вы настроили в файле config.rb.

Rails::Initializer.run do |config|
  config.action_controller.session = {
    :session_key => '_store_session',
    :secret      => '851939c37d94574e284ded8437d4ea3447dae24cc5bda61d8eaf2731d49273bc4c620'
  }
end

Так что, хотя его нелегко прочитать, это невозможно при достаточном времени и усилиях.

Вот несколько ссылок, которые подробно обсуждают эту проблему, но общее мнение состоит в том, что это не ошибочная реализация, и что вы не должны хранить в сеансе слишком критические данные.

1 голос
/ 05 августа 2009

Стоит знать, что рельсы <1.2.6, подверженные уязвимости фиксации сессии, облегчают кражу чужого ID / сессии </p>

Rails 1.2.4 Примечания к выпуску http://weblog.rubyonrails.org/2007/10/5/rails-1-2-4-maintenance-release

Rails 1.2.6 Примечания к выпуску http://weblog.rubyonrails.org/2007/11/24/ruby-on-rails-1-2-6-security-and-maintenance-release

CVE-2007-5380 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-5380

CVE-2007-6077 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6077

...