2013-08-29 23 views
7

Tôi đã thực hiện trách nhiệm giải trình của mình trên google và không thể tìm thấy câu trả lời rõ ràng. Vì vậy, những người tốt của ngăn xếp tràn ...là đường ray "secret_token" vẫn quan trọng với config.session_store (: cache_store)?

nếu, trong một ứng dụng đường ray 3, tôi không sử dụng cookie để lưu phiên, điều quan trọng là phải quản lý an toàn "Application.config.secret_token"? hơn nữa, nó được sử dụng ở tất cả?

Trả lời

6

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_tokendigest 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.

0

Application.config.secret_token cũng được sử dụng để xác thực truy cập HTTP cơ bản và xác thực thông tin.

Rais 3.2 HTTP Basic and Digest Access Authentication source file

Basic and Digest Access Authentication RFC

+0

"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

+0

@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" –

Các vấn đề liên quan