10

Rails 5 (beta1) 有一个非常奇怪的问题,它阻止我安全地提交任何表单。

在解密 SSL 的 Nginx(Ubuntu 12.04 上的 1.4.6)反向代理后面以生产模式运行时,Rails 拒绝我的 CSRF 令牌,称它们无效,尽管表单提交了正确的令牌。

当我在 Nginx 中关闭 SSL 时,一切正常。

任何帮助,将不胜感激。

4

1 回答 1

19

通过在 Nginx ( X-Forwarded-Ssl on,X-Forwarded-Port 443X-Forwarded-Host "your hostname", X-Forwarded-Proto https) 中添加更多标头来修复。问题实际上是 ActionController 检查 CSRF 令牌的新方式(将 request.base_url 与 origin 标头进行比较)

于 2016-01-08T10:30:57.237 回答