我使用Brakeman
gem
来分析我的ruby-on-rails
应用程序代码。
它有以下High level security warning
:
Warning Type | Message |
--------------------------------------------------------------------------
Session Setting | Session cookies should be set to HTTP only near line 3 |
根据文档,将httponly
属性设置为true
,而不是false
(默认值),在config/initializers/session_sotre.rb
中删除此警告(它对我有效)。
true
会导致问题吗? 默认情况下,Rails在会话cookie上设置HTTPOnly
标志。此标志禁止JavaScript读取cookie(详情请参阅此处),从而防止跨站点脚本攻击访问cookie。在使用会话cookie的情况下,它可以防止通过跨站点脚本窃取/劫持会话。
在会话存储选项中设置httponly: false
将关闭此保护。您可以将其设置为true
或根本不设置(在这种情况下,默认值仍然是true
)。
但是,如果应用程序出于某种原因需要从JavaScript访问会话cookie,那么您必须关闭httponly
选项。但是,这应该是非常罕见的。