【问题标题】: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”的域之后,我会让我的代码与我的列表进行比较。

标签: php javascript


【解决方案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

      【讨论】:

        猜你喜欢
        • 2016-09-08
        • 2020-01-24
        • 1970-01-01
        • 1970-01-01
        • 2016-08-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多