2

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

我对其进行了更多研究,发现我需要更改我的 X-frame 选项,将 HTTP 标头从“SAME ORIGIN”更改为“ALLOWALL”。我已经将此行添加到我的 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

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

4

2 回答 2

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>
于 2018-09-30T10:02:32.623 回答
0

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

    add_header X-Frame-Options "SAMEORIGIN";

并确保运行

    sudo service passenger restart

使更改生效。

:)

于 2020-02-27T07:43:36.607 回答