我正在创建一些IFrameable内容。我们希望用户能够在此页面中使用IFrame,但只能从一组域名中获取。
有什么我们可以检查以查看父页面的域名是什么吗?
if (top != self) { top.location.replace(self.location.href); }
答案 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)
我正在使用它来检查页面是否从白名单域加载。我确信有办法解决这个问题,但似乎有效。
>