[英]Prevent Ruby on Rails from sending the session header
如何防止Rails始終發送會話頭(Set-Cookie)。 如果應用程序還發送Cache-Control:public標頭,則這是一個安全問題。
我的應用程序在某些/大多數操作中觸及(但不修改)會話哈希。 這些頁面不顯示私有內容,因此我希望它們可以緩存 - 但無論發送的會話哈希是否與之前的哈希不同,Rails總是發送cookie頭。
我想要實現的是只發送哈希值,如果它與從客戶端收到的哈希值不同。 你怎么能這樣做? 也許這個修復也應該進入官方的Rails版本? 你怎么看?
如果已經觸摸,Rails僅將會話cookie數據添加到Set-Cookie標頭。 您可能正在設置它們已包含的值 - 它不夠智能,無法檢查數據是否確實不同。
編輯我的回答有點誤導。 當您使用cookie會話存儲時,如果cookie值(在Marshaling之后)發生更改,則會設置新cookie。
請參閱actionpack/lib/action_controller/session/cookie_store.rb
對於Rails 3,然后使用它。
env['rack.session.options'][:skip] = true
或等同物
request.session_options[:skip] = true
你可以在這里找到它的文檔http://doc.rubyists.com/rack/Rack/Session/Abstract/ID.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.