如何防止带白名单的IFraming

时间:2009-12-03 01:36:29

标签: php javascript iframe whitelist

我正在创建一些IFrameable内容。我们希望用户能够在此页面中使用IFrame,但只能从一组域名中获取。

有什么我们可以检查以查看父页面的域名是什么吗?

if (top != self) { top.location.replace(self.location.href); }

3 个答案:

答案 0 :(得分:2)

不,如果该页面不在您的安全上下文(同源策略)中,则父页面的location不可见。你当然可以查看你自己框架的document.referrer,但这并不是完全防水的...客户端的引用检查在服务器端稍微没​​用,但它仍然可以在框架中被类似刷新转发器的东西所绕过。

Content Security Policy中的frame-ancestors限制可能有一天允许这样做。

答案 1 :(得分:2)

正如鲍比斯所说,document.referrer看起来是你最好的选择。您可以在iFrame的src页面中进行检查。但是,HTTP引用信息很容易被欺骗,因此这种方法不是很安全。

本文介绍如何使用PHP:How to bypass the REFERER security check

答案 2 :(得分:1)

我正在使用它来检查页面是否从白名单域加载。我确信有办法解决这个问题,但似乎有效。

>