Я сегодня опробовал учебник по рельсу и был смущен этой частью генерации секретного кода.Что такое secret_token в rails?
http://ruby.railstutorial.org/chapters/static-pages#top
require 'securerandom'
def secure_token
token_file = Rails.root.join('.secret')
if File.exist?(token_file)
# Use the existing token.
File.read(token_file).chomp
else
# Generate a new token and store it in token_file.
token = SecureRandom.hex(64)
File.write(token_file, token)
token
end
end
SampleApp::Application.config.secret_token = secure_token
Может кто-нибудь объяснить мне, что необходимость этого файла. Какова цель этой 64-разрядной секретной строки.
Похоже, что используется для смягчения несанкционированного доступа (см. Http://stackoverflow.com/questions/4241441/rails-secret-token) через какую-либо форму HMAC. Это полезно, потому что повышает уверенность в том, что данные от клиента (в файлах cookie или даже в скрытом поле) генерируются * только * конкретным сервером и поэтому могут быть безопасно использованы. Однако я не уверен, что RoR также защищает от повторных атак с помощью этого подхода. – user2246674