quy*_*tdc 5 ruby ruby-on-rails github
我正在使用gem omniauth
,当我将代码推送到Github时,由于使用gem ,它向我显示了安全警告。
CVE-2015-9284
high severity
Vulnerable versions: <= 1.9.0
Patched version: No fix
The request phase of the OmniAuth Ruby gem is vulnerable to Cross-Site Request Forgery when used as part of the Ruby on Rails framework, allowing accounts to be connected without user intent, user interaction, or feedback to the user. This permits a secondary account to be able to sign into the web application as the primary account.
Run Code Online (Sandbox Code Playgroud)
但是,看来我使用的是最新版本
有没有可能的解决方法,还是我现在应该跳过此步骤?
这已在omniauth/omniauth 第 960 期中报告,并在PR 809“使用 Rails 时保护请求阶段免受 CSRF 影响”中进行了讨论。
这包括:
因此,我们已经实现了该
omniauth-rails_csrf_protection
解决方案,但之前我们让第 3 方 OAuth 提供商在验证注册后让人们登录并将他们重定向到我们的/auth/provider
端点。
现在,这需要他们使用 CSRF 令牌 POST 到端点,这是不可能的,因为它们位于单独的平台/系统上。是否应该更新omniauth自述文件以提及任何使用带有rails的omniauth的人也应该使用
omniauth-rails_csrf_protection
?
请参阅提交 0264706作为使用该设置的示例。
gem "omniauth-rails_csrf_protection"
Run Code Online (Sandbox Code Playgroud)
我讨厌引入第三方 shim 来修复安全问题,但上游omniauth仍然没有修复其漏洞,而且这是 4 年前(2015 年)的 CVE 报告。
Omniauth 的人们仍在讨论如何修复它,我的耐心已经耗尽。
我检查了 shim 代码,没有发现任何问题。这是一个允许帐户被接管的漏洞,因此我认为忽略它是极其不明智的。利用它并不容易,但它是真实的。