Jor*_*vas 2 ruby subdomain ruby-on-rails csrf
我有一个在端口12003上运行的Rails 5应用程序,我配置了一个子域,透明地重定向到该端口,如下所示:
https://test.example.com => https://example.com:12007
问题是当我尝试登录或执行需要来自子域的真实性令牌的操作时,应用程序会抛出此错误:
AccessController中的ActionController :: InvalidAuthenticityToken#attempt_login
当我尝试从包含端口的URL执行操作时,应用程序不会抛出它:http://example.com:12007
这让我觉得该应用会将子域检测为Forgery尝试.
有没有办法将子域列入白名单或修复此问题而不在我的应用程序上禁用CSRF保护?
我在Rails 5,Devise和Nginx与SSL的组合中遇到了类似的问题.
简单地关闭CSRF保护导致无法通过设计登录/登录(会话未更改,登录重定向回root,就好像什么都没发生一样).
使用curl我测试这只是在HTTPS上的问题,但一切都在HTTP上运行良好.
在一天结束时,我唯一能解决这个问题的方法是
server {
location @app {
...
proxy_set_header X-Forwarded-Proto https;
...
}
}
Run Code Online (Sandbox Code Playgroud)
在Nginx站点配置(/etc/nginx/sites-available/default)中.
| 归档时间: |
|
| 查看次数: |
825 次 |
| 最近记录: |