Ruby On Rails - Brakeman:会话cookie应该只设置为HTTP



我使用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选项。但是,这应该是非常罕见的。

相关内容

  • 没有找到相关文章

最新更新