Các secret_token được sử dụng bởi cookie_store, được sử dụng để lưu trữ phiên phía khách hàng dữ liệu. Here là một bài viết hay về cách thực thi mã tùy ý bằng cách sử dụng một secret_token đã biết.
cookie_store
chính xác hơn là ActionDispatch::Session::CookieStore
, một phần mềm trung gian giá mà đường ray tải vào ngăn xếp giá của bạn khi bạn đặt session_store(:cookie_store)
. Vì vậy, nếu bạn đang thiết lập để :session_store
bạn nên được tốt không thiết lập secret_token.
Bạn có thể kiểm tra Rails.configuration.middleware
để xem tất cả phần giữa của bạn và xác nhận ActionDispatch::Session::CookieStore
không phải là một trong số chúng.
FWIW, ứng dụng đường ray 3.2 sẽ bắt đầu bằng secret_token
chưa được đặt nhưng yêu cầu cố gắng đặt biến phiên sẽ không thành công 500. Tôi chưa theo dõi chính xác vị trí xảy ra lỗi.
Nhưng nếu bạn không đặt secret_token và bạn không có ActionDispatch::Session::CookieStore
trong ngăn xếp giá và ứng dụng của bạn dường như hoạt động, bạn sẽ an toàn trước cuộc tấn công cụ thể đó.
Cách sử dụng khác là secret_token
là digest authentication.
Tóm lại, để trả lời câu hỏi, nếu bạn không sử dụng xác thực thông báo và bạn không sử dụng cookie_store (ví dụ: bằng cách đặt session_store(:cache_store)
) thì secret_token
không quan trọng.
"Tôi không biết" không phải tất cả đều hữu ích. OP không nhận thức được, do đó câu hỏi. – cluesque
@cluesque, vâng, nhờ câu trả lời của bạn bây giờ tôi hoàn toàn nhận thức được rằng secret_token chỉ được sử dụng cho cookie và xác thực thông báo. Nhân tiện: "và ứng dụng của bạn dường như hoạt động" cũng hữu ích "Tôi không biết" –