мой код конфигурацииSinatra/1.4.3 Использование Rack :: Session :: Предупреждение о Cookie
require 'sinatra'
#set :environment, :production
enable :sessions
enable :logging
set run: true
case
when production?
set port: 8081
when development?
require 'sinatra/reloader'
require 'better_errors'
use BetterErrors::Middleware
BetterErrors.application_root = __dir__
end
use Rack::Session::Cookie, key: 'N&wedhSDF',
domain: "localhost",
path: '/',
expire_after: 14400,
secret: '*&(^B234'
get '/' do
erb :hello
end
Он все еще показывает предупреждение:
SECURITY WARNING: No secret option provided to Rack::Session::Cookie.
This poses a security threat. It is strongly recommended that you
provide a secret to prevent exploits that may be possible from crafted
cookies. This will not be supported in future versions of Rack, and
future versions will even invalidate your existing user cookies.
, но он не показывает на производстве
вопрос в том, почему он все еще показывает предупреждение, даже если Rack :: Session :: Cookie уже установлен?
Не могли бы вы объяснить, что такое настройка '' session_secret''? Я искал ответ, но я не могу найти его нигде. Мое лучшее предположение состоит в том, что он использует его как соль для хэша, чтобы люди не могли кузнуть куки. – Piccolo
@ Piccolo Да, это значит, чтобы люди не купили файлы cookie, но они используются как ключ в [HMAC] (https://en.wikipedia.org/wiki/Hash-based_message_authentication_code), а не как соль. За дополнительной информацией обращайтесь к [Сессионный код файла cookie] (https://github.com/rack/rack/blob/1.6.4/lib/rack/session/cookie.rb). – matt
Большое спасибо! Я изучаю это прямо сейчас. Кроме того, есть ли причина, по которой я не могу создать новый секретный ключ в начале моего приложения? – Piccolo