【发布时间】:2014-10-26 15:47:09
【问题描述】:
关于框架检测的大多数问题似乎都来自希望防止他们的网站出现在框架内的人。但是,我试图找到一种方法来拒绝显示特定的 php 页面,除非它在 frame 中。一个警告是 iframe 和主页位于不同的域上。
domain1.com/index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Site/title>
<meta name="viewport" content="width=device-width,minimum-scale=1.0">
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
<meta HTTP-EQUIV="Expires" CONTENT="-1">
</head>
<body>
<div id="content">
<iframe width="100%" height="100%" frameborder="0" src="http://domain2.com/browse.php" />
</div>
</body>
</html>
我尝试了以下验证方式:
查看 domain2.com/browse.php 中的 REFERER 信息,看看它是否已从 domain1.com/index.php 中引用。这取得了有限的成功,因为我每天记录了大约 1,000 名禁用引荐信息的访问者
将用户的 IP 地址作为加密查询字符串的一部分从 domain1.com/index.php 传递到 domain2.com/browse.php。这也取得了有限的成功,但我认为缓存(尽管我尝试禁用它)导致 index.php 将旧的加密查询字符串传递给具有过时 IP 地址的 browse.php。
理想情况下,我想知道 domain2.com/browse.php 是否在 domain1.com/index.php 中加载,但如果这不可能,我希望 browse.php 不显示内容如果它不在 iframe 中。
帮助非常感谢
【问题讨论】:
-
这需要有多安全?
-
不太像我希望browse.php在没有iframe的情况下提供不同的内容,隐藏了他们基本上被拒绝直接访问browse.php的事实
标签: php html session iframe referer