在Hartl的教程中,他重写了secret_token.rb以动态生成秘密令牌。他为什么这样做?只要你没有版本控制它,将它存储在文件中有什么区别?
Hartl的secure_token.rb代码:
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_key_base = secure_token
答案 0 :(得分:4)
这很简单。有了这种令牌生成:
然而,显示如何生成秘密令牌足够危险。您使用的工具或库在任何给定的时间点都很容易受到攻击。