PHP - 使用HTTP_REFERER来测试iframe的父页面是否可靠?

时间:2012-12-15 22:32:11

标签: php http iframe http-referer

我有一个名为test2.php的页面,它通过iframe加载到test1.php中。

我想实现一个白名单,以确保只能通过test1.php访问test2.php。我注意到父页面URL(test1.php)作为子iframe页面(test2.php)的HTTP_REFERER传递。

在IE7 / 8/9以及我正在使用的Chrome和FF版本中也是如此。

因此,在这种情况下,由于真正的安全性不是一个因素,测试HTTP_REFERER字段是否可靠以检查父页面的标识?是否有浏览器没有为iframe设置此标题,或者是否存在我没​​有考虑的边缘情况?

我意识到这不是防黑客,因为标头欺骗是微不足道的,但安全性不是问题。我只想控制(或多或少)test2.php嵌入的页面。

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

您可以使用JavaScript - 在开始时检查您的test2.php文件是否在iFrame中

var isInIframe = (parent !== window);    
然后你可以得到&验证父网址

function getParentUrl() {
var isInIframe = (parent !== window),
    parentUrl = null;

if (isInIframe) {
    parentUrl = document.referrer;
}

return parentUrl;    

}