检测客户端域名[重复]

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

【讨论】:

以上是关于检测客户端域名[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在客户端检测时区[重复]

Burp Collaborator -带外应用检测工具

请教域控制器的域和外网域名重复的解决方法?

Nginx实践:用rewrite规则实现域名重定向及客户端IP地址透传

腾讯域名防封 微信/QQ域名检测,域名防封的原理

检测第三方cookie是不是被禁用的JavaScript解决方案[重复]