私の構成コードシナトラ/ 1.4.3用ラック::セッション::クッキー警告
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はい、人々を偽造するのを防ぐためですが、塩ではなく[HMAC](https://en.wikipedia.org/wiki/Hash-based_message_authentication_code)のキーとして使用されます。詳細については、[Rack cookie session code](https://github.com/rack/rack/blob/1.6.4/lib/rack/session/cookie.rb)を参照してください。 – matt
ありがとう!私は今それを調べている。また、アプリケーションの開始時に新しい秘密鍵を生成できない理由はありますか? – Piccolo