使用Devise的Cache漏洞上的Ruby On Rails会话ID

时间:2018-10-25 14:24:36

标签: ruby-on-rails caching

我们正在接受外部安全公司的审核,第一份漏洞报告说我们在将会话ID存储在Web浏览器缓存存储区时遇到问题。

该报告指出以下内容:

漏洞

M-001:不完整或没有缓存控制和编译指示HTTP

影响描述:

发现了一个安全问题,即使关闭了会话,也可以通过Web浏览器的缓存访问在会话内交换的私有或机密数据。因此,Web应用程序必须对通过HTTP和HTTPS交换的所有Web流量使用限制性缓存策略,例如标头HTTP“ Cache-Control:无缓存,无存储”和“ Pragma:无缓存” [5]。和/或所有或(至少)敏感网页上的等效META标签。

建议

无论Web应用程序定义了什么缓存策略,都建议如果允许在Web应用程序的缓存中存储,则ID会话绝不应该存储在缓存中,因此强烈建议使用一组ID。 cookie“ Cache-Control:no-cache =”。 -指令“ Cookie2”,以允许网络客户端 缓存除会话ID之外的所有内容。“

在下图中,您可以看到通过终端对平台进行查询时得到的结果:

enter image description here

我们的平台是在Amazon Web Services上托管的Ruby on Rails 5.0.2版本中开发的,我们将Devise用作身份验证工具。

公司的建议告诉我们实施Cookie2指令,但是我们已经阅读到该指令已过时。

我们无法有效解决Cookie和浏览器缓存中会话ID的问题。 当前,Devise会自动将对应用程序的每个请求中的de session_id更改为随机值。

此session_id重置是否不足以攻击提到的漏洞?针对session_id存储在缓存中的常见操作是什么?

0 个答案:

没有答案