2016-09-14 165 views
4

我有一个表单,我想将其嵌入到我的白名单上的网站中。如何仅允许iFrame嵌入白名单网站?

试图嵌入它的其他网站应该只有一个错误页面。

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

我希望我可以用$_SERVER['HTTP_REFERER']getForm.php检查embeding网站,但它不工作。

有谁知道最佳做法或任何解决方法吗?

提前致谢!

+1

您必须检查发出请求的远程地址的IP为“getForm.php”,但IP可能被欺骗。看看全球的$ _SERVER'晚餐。我会认为'REMOTE_ADDR'是网站拨打电话的IP地址,但我不是100%确定的,这可能只是客户IP。 – ArtisticPhoenix

+0

你能找到解决方案吗?我尝试了$ _SERVER ['HTTP_REFERER'],它工作正常,但我读了它可以被欺骗的地方,所以有更好的解决方案吗? –

回答

7

大多数浏览器将支持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

希望它可以帮助一点!