如何配置Phusion Passenger X-frame选项?

时间:2015-06-30 23:23:52

标签: ruby-on-rails amazon-web-services passenger phusion

我正在尝试iframe我构建的网站(使用Rails)并使用Phusion Passenger部署在AWS上的ubuntu实例上。

我更多地了解它并发现我需要更改我的X帧选项,从“SAME ORIGIN”到“ALLOWALL”的HTTP标头。我已将此行添加到我的config / application.rb文件和config / environments / production.rb

config.action_dispatch.default_headers.merge!({'X-Frame-Options' => 'ALLOWALL'})

即使这样,当我打开我的网站时,我仍然会在我的网络标题中获得这些设置:

Status:200 OK
Transfer-Encoding:chunked
X-Content-Type-Options:nosniff
X-Frame-Options:SAMEORIGIN
X-Powered-By:Phusion Passenger 5.0.11

这让我相信在某个地方有一个Phusion Passenger配置文件,我需要更改X-Frame-Options。任何线索或帮助都会很棒,谢谢!

2 个答案:

答案 0 :(得分:0)

X-Frame-Options标头应在您的虚拟主机(通常是Apache或Nginx)中设置。出于安全原因,如果可能的话,仅允许HTTPS白名单域和白名单路径。

<virtualHost *:443>
  # ... Host and Passenger configuration ...

  <Location "/your-iframable-path">
    Header always set X-Frame-Options "ALLOW-FROM https://domain-using-iframe"
  </Location>
</virtualHost>

答案 1 :(得分:0)

我有同样的问题。经过长时间的尝试,我找到了解决方案。
乘客为其nginx配置使用模板。启动乘客时,您可以使用--nginx-config-template参数将模板传递给它。
现在,要为乘客配置X-Frame-Options标头,只需编辑模板文件。在模板文件的http {块下添加以下行:

    add_header X-Frame-Options "SAMEORIGIN";

并确保运行

    sudo service passenger restart

要使更改生效。

:)