检测客户端域名[重复]
Posted
技术标签:
【中文标题】检测客户端域名[重复]【英文标题】:Detect client domain name [duplicate] 【发布时间】:2012-11-22 21:27:29 【问题描述】:可能重复:access parent url from iframe
我目前有一个 iframe 标签,例如:
<iframe src="www.mydomain.com/animation.html></iframe>
...我希望我的客户嵌入这个标签以呈现在他们的页面上,但是我只想在我的数据库中提供一些域名列表来呈现这个 iframe,所以我该怎么做。谢谢
【问题讨论】:
您是说希望“animation.html”页面检测它何时包含在 iframe 中,并进一步检测包含 iframe 的页面的域? 当然可以。在检测到嵌入“animation.html”的域之后,我会让我的代码与我的列表进行比较。 【参考方案1】:您可以使用parse_url。它可以帮助您检测域
【讨论】:
【参考方案2】:解决方案 1: 您可以通过允许他们的 IP 地址并禁止所有其他 IP 来做到这一点,只需创建 .htaccess 文件并在其中添加以下规则。
order deny,allow
deny from all
allow from 111.222.333.444
解决方案 2: 应用限制的第二种方法是使用 php 文件而不是平面 HTML 文件并在其中添加任何类型的限制,请参见下面的代码
//动画.php
<?php
$allowed_domains = array(
'www.example-1.com',
'www.example-2.com',
'www.example-3.com',
);
if (in_array($_SERVER['SERVER_NAME'], $allowed_domains)) : ?>
Your I-frame content goes here!
<?php endif;?>
【讨论】:
iframe 请求来自单个用户的浏览器位置,而不是来自主机页面的域。 @jfriend00 答案完全符合相关要求。 Pon Somean 说“我只想在我的数据库中提供一些域名列表来呈现这个 iframe” OP 对这个问题不是很清楚,但我认为他们的意思是他们想要控制哪些域的网页可以嵌入他们的 iframe。 不,他只想将 iframe 的使用限制在某些域中,您误解了问题/答案并否决了我的答案。现在你应该投票了。 抱歉,域不使用 iframe。从浏览器加载的网页使用 iframe,并且 iframe 从浏览器的位置加载,而不是从网页的域加载。【参考方案3】:如果您想限制哪些网站可以将您的页面包含在 iframe 中,您可以向每个域分发唯一令牌;每个域的代码如下所示:
<iframe src="http://mydomain.com/animation.html?token=absfqeqwe"></iframe>
这只是设置了一个小障碍,有人可以简单地从您的一个合法网站复制它,然后为自己使用。
我个人认为这是不可行的。
【讨论】:
【参考方案4】:许多浏览器支持x-frame-options header
,描述为here。这允许您列出可以构成您的页面的可接受域。
这里有一些其他的讨论:Frame Buster Buster ... buster code needed
【讨论】:
以上是关于检测客户端域名[重复]的主要内容,如果未能解决你的问题,请参考以下文章