检查网站是否通过Iframe加载

时间:2015-09-29 07:12:00

标签: javascript php

我有index.php如下:

<html>
<head>
<title>Page Title</title>
<meta name="description" content="Description">
<meta name="keywords" content="Keyword1, Keyword2">
</head>
<body style="margin:0px;padding:0px;overflow:hidden">
<iframe id="myID" src="/index2.php" frameborder="0" style="overflow:hidden;height:100%;width:100%" >
</iframe>
</body>
</html>

index.php中的iframe用于屏蔽index2.php(即iframe src)。但是,用户只需通过

进入网站即可
www.website.com/index2.php 

这将破坏所有掩蔽。有没有办法通过javascript或其他方式知道iframe是否加载到每个网站的页面上,如果他们通过index2.php进入网站,则重定向用户。

1 个答案:

答案 0 :(得分:2)

我认为没有办法可靠地做到这一点。您需要在iframe页面中使用JavaScript来测试文档是否在top框架中,或者使用PHP来检查引荐来源。

将以下其中一项放入您要在iframe中加载的页面中。

PHP

if ($_SERVER['HTTP_REFERER'] != 'http://domain.com/index.php') {
header('Location: http://domain.com/index.php');
}

JavaScript

if (window==window.top) { 
window.location = "http://domain.com/index.php"
}

<强> NB
但是,由于可以关闭JavaScript,并且引用者可以被欺骗,因此它永远不会完全万无一失。

可能最好的补救方法是用include替换iframe并使用AJAX更新它。