0

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会导致问题吗?

4

1 回答 1

4

默认情况下,RailsHTTPOnly会在会话 cookie 上设置标志。此标志禁止 JavaScript 读取 cookie(请参阅此处了解详细信息),从而防止跨站点脚本攻击访问 cookie。对于会话 cookie,它可以防止通过跨站点脚本窃取/劫持会话。

在会话存储选项中设置httponly: false会关闭此保护。您可以将其设置为true或根本不设置(在这种情况下,默认值仍然是true)。

但是,如果应用程序出于某种原因需要从 JavaScript 访问会话 cookie,则您必须关闭该httponly选项。但是,这应该很少见。

于 2015-08-20T20:29:18.350 回答