如何仅允许iframe嵌入白名单网站?

时间:2016-09-14 05:53:42

标签: php html forms iframe referer

我有一个表格,我想嵌入一个网站,该网站在我的白名单上。

尝试嵌入它的其他网站应该只会出现错误页面。

<iframe src="https://domain.tld/getForm.php?embed=1&formId=123456"></iframe>

我希望我可以使用$_SERVER['HTTP_REFERER']中的getForm.php来检查嵌入网站,但它无效。

有没有人知道最佳做法或任何解决方法?

提前致谢!

2 个答案:

答案 0 :(得分:17)

现在推荐使用内容安全策略标头。

来自MDN的示例:

))

有关更多详细信息,请参见:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors

答案 1 :(得分:9)

大多数浏览器都支持X-Frame-Options标头。

此标头会阻止访问:

X-Frame-Options: SAMEORIGIN

此标题允许访问:

X-Frame-Options: ALLOW-FROM [uri]

选项示例:

X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
X-Frame-Options: ALLOW-FROM https://example.com/

PHP中的一个例子:

<?php header('X-Frame-Options: SAMEORIGIN'); ?>

您可以在这里阅读: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options

希望它有所帮助!