2012-10-29 65 views
1

我試圖將會話cookie安全標誌設置爲true。我增加了以下我的環境/ production.rb安全會話Cookie未設置

ActionController::Base.session_options[:secure] = true 

在生產模式我看不到在服務器響應的設置cookie頭(我用的Tamper Data Firefox的工具來查看流量)。我嘗試刪除所有的cookie,手動設置包括子域在內的域(由於域在很多應用程序中共享,appache服務器將請求轉發給正確的應用程序,因此請求總是被應用程序服務器接收,就好像它來自本地主機一樣)。 我也試圖在開發模式下測試它,我認爲服務器應該至少設置cookie,即使請求通過http,但瀏覽器不會通過http發送cookie,但服務器再次不會發送set-cookie頭。如果我不設置安全標誌,會話工作得很好。我在這裏錯過了什麼嗎?

+1

如果是Rails 3.x,它應該是Rails.application.config.secret_token – felipeclopes

+0

感謝您的評論,但我在2.3.8。我也試圖設置cookie的安全標誌而不是會話祕密令牌。 – Nonos

回答

1

我發現,在我的actionpack版本中,會話cookie僅設置在ssl上。 儘管根據定義,服務器可以在請求通過http時設置安全cookie,但瀏覽器不會發送進一步的請求。在我的應用程序中,我不強制在應用程序級別使用ssl,而是在appache級別強制使用,因此由rails製作的初始請求超過http並且未設置cookie。