【发布时间】:2015-09-03 21:39:27
【问题描述】:
我在我的网站中嵌入了一个带有 iframe 的 Shiny 应用程序,我现在正试图保护我的 Shiny 应用程序:我希望 iframe 只能在我的网站中访问,而不是直接通过其 URL 访问。
<iframe name="rshiny"
src="http://url-of-my-shiny-app/" style="border: none; width: 100%;height:800px;">
</iframe>
为此,我试图在我的 Shiny-app 中获取包含 iframe 的父级 URL,并阻止它是否不是好网站。
问题是:我找到了如何在许多语言中获取 URL 父级,但 R. 有谁知道我该怎么做?
我有另一个可能的解决方案,但暂时不起作用:
postForm('http://url.php', .params = params, curl = curl, style="POST")
我想我可以从我的网站向我的 R 应用程序发送一个 post 变量,就像一个密钥一样,只允许知道密钥的网站访问。 但我不能让它工作。
编辑:我认为这个问题与 cmets 中建议的链接不同。实际上,建议的选项似乎在 R Shiny 中不可用。
【问题讨论】:
-
限制网站嵌入的最佳方法是在提供闪亮的应用程序时使用X-Frame-Options 标头,并仅使用合法地址使用
ALLOW FROM。如何添加此标头取决于您为应用提供服务的方式。 -
感谢您的回答:但实际上这里的情况可能有所不同,因为我在一个闪亮的应用程序中:在 R 中我不知道是否可以为我的 iframe 使用这样的选项,我已经搜索过没有找到合适的东西。
-
我简要地查看了文档,似乎没有任何简单的方法可以将标题添加到响应中。如果我要解决这个问题,我会在端口 80/443 上运行一个
nginx服务器作为反向代理并手动添加这些标头。 -
好吧,我暂时无法使用 nginx 服务器:最好的方法是使用这些适用于 Shiny 的 X-frame 选项。有谁知道怎么做?