我已经完成了我的谷歌尽职调查,但找不到明确的答案。所以,堆栈溢出的好人......
如果在 rails 3 应用程序中,我没有使用 cookie 来存储 session ,那么安全地管理“Application.config.secret_token”是否重要?此外,它被使用了吗?
最佳答案
secret_token 由 cookie_store 使用,用于在客户端存储 session 数据。 Here是一篇关于如何使用已知的 secret_token 执行任意代码的好文章。
此 cookie_store
更准确地说是ActionDispatch::Session::CookieStore
,一种机架中间件,可在您设置 session_store(:cookie_store)
时将负载加载到机架堆栈中.因此,如果您将其设置为 :session_store
你不设置secret_token应该没问题。
您可以查看 Rails.configuration.middleware
查看所有中间件并确认 ActionDispatch::Session::CookieStore
不是其中之一。
FWIW,rails 3.2 应用程序将以 secret_token
开头未设置,但尝试设置 session 变量的请求将失败 500。我还没有准确追踪失败发生的位置。
但是如果你没有设置secret_token,并且你没有ActionDispatch::Session::CookieStore
在您的机架堆栈中,并且您的应用程序似乎可以正常工作,您就可以免受该特定攻击。secret_token
的其他用途是 digest authentication .
总之,要回答这个问题,如果您不使用摘要式身份验证,并且不使用 cookie_store(例如,通过设置 session_store(:cache_store)
),则 secret_token
并不重要。
关于ruby-on-rails - rails "secret_token"对 config.session_store( :cache_store)?) 仍然很重要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18516010/