Rails CSRF验证无法与生产中的代理服务器一起使用

时间:2017-02-14 17:27:24

标签: ruby-on-rails proxy csrf ruby-on-rails-5

我的Rails 5应用程序上有一个简单的反馈表单,它在POST s上失败了CSRF验证 - 但仅限于生产中。更具体地说,生产服务器是foo.example.com,但服务由代理服务器proxy.example.com访问。在代理上运行了一个Nginx服务器,用于将请求路由到相应的应用程序服务器。

如果我直接浏览http://foo.example.com并提交表格,一切都很好。但是在查看https://proxy.example.com时提交相同的表单,我得到了CSRF失败。两个访问路由之间存在两个主要差异:代理请求重写,以及httphttps。我不确定哪个是相关因素。

有一种理论认为会话商店使用的域名不正确,但我尝试了将domain:传递给Rails.application.config.session_store的各种变体,但没有一个产生任何差异。在那之后,我宁愿用尽假设在哪里看。

0 个答案:

没有答案