mã cấu hình của tôiSinatra/1.4.3 sử dụng rack :: phiên :: cảnh báo 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
Nó vẫn cho thấy một cảnh báo:
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.
nhưng nó không hiển thị trên sản
câu hỏi là, tại sao nó vẫn hiển thị cảnh báo ngay cả khi Rack :: Session :: Cookie đã được đặt?
Bạn có thể giải thích cách đặt '' session_secret'' không? Tôi đã tìm kiếm một câu trả lời nhưng tôi không thể tìm thấy nó ở đâu cả. Đoán tốt nhất của tôi là nó sử dụng nó như một muối cho băm để mọi người không thể giả mạo cookie. – Piccolo
@Piccolo Có, nó là để ngăn chặn người giả mạo cookie, nhưng nó được sử dụng như là chìa khóa trong một [HMAC] (https://en.wikipedia.org/wiki/Hash-based_message_authentication_code) chứ không phải là muối. Kiểm tra [Mã phiên cookie giá] (https://github.com/rack/rack/blob/1.6.4/lib/rack/session/cookie.rb) để biết thêm thông tin. – matt
Cảm ơn rất nhiều! Tôi đang xem xét nó ngay bây giờ. Ngoài ra, có lý do nào khiến tôi không thể tạo ra khóa bí mật mới khi bắt đầu đơn đăng ký của mình không? – Piccolo