Javascript 如何将iframe从外部站点的显示限制为仅显示特定域

Javascript 如何将iframe从外部站点的显示限制为仅显示特定域,javascript,iframe,Javascript,Iframe,我运营一项服务,其中客户的内容准备好并显示在iframe中。然后,客户机复制一个基本的iframe html标记,并将其粘贴到他们的网页中。一些客户抱怨其他网站正在复制iframe标签并将其粘贴到他们的网站上 是否可以将iframe内容的显示限制在一个或多个特定域?可能通过编程方式告诉iframe其父对象必须是some-domain.com,否则不显示 这有意义吗?有时我可能会过于冗长。您可以使用.htaccess(假设原始内容在Apache服务器上)来限制对特定IP的访问 或者,如果页面是PH

我运营一项服务,其中客户的内容准备好并显示在iframe中。然后,客户机复制一个基本的iframe html标记,并将其粘贴到他们的网页中。一些客户抱怨其他网站正在复制iframe标签并将其粘贴到他们的网站上

是否可以将iframe内容的显示限制在一个或多个特定域?可能通过编程方式告诉iframe其父对象必须是some-domain.com,否则不显示

这有意义吗?有时我可能会过于冗长。

您可以使用.htaccess(假设原始内容在Apache服务器上)来限制对特定IP的访问

或者,如果页面是PHP,则可以将其限制在特定的域中,如下所示:

    <?php
$continue = 0;
if(isset($_SERVER['HTTP_REFERER'])) {

    //correct domain:
    $ar=parse_url($_SERVER['HTTP_REFERER']);
    if( strpos($ar['host'], 'yourdomain.com') === false ){
    } else {
        $continue = 1;
    }

}

if($continue == 0){
    header('HTTP/1.0 403 Forbidden');
    exit('Forbidden');
}

?>

听起来像是在服务器端进行的一种更好的检查——您可以对照有效域名(或父域名)列表检查iFrame标记,如果它们无效,则可以将其拒绝


在将iFrame注入页面之前,您可以使用javascript执行上述所有操作,但如果javascript关闭,您的验证将无法工作,更不用说使用客户端上的开发工具,任何javascript都可以修改。

您在这里做了一个巨大的假设,Web服务器可以这样修改。@Oded假设是什么?推荐人是正确的吗?请解释一下。@Marci-他假设您有权访问并可以更改
.htaccess
文件(并且您正在使用Apache)。@Ode哦,我明白了。请原谅我没有包括这些细节。你是对的。没有这些信息,这是一个巨大的假设。事实上,我有一个专用服务器,可以完全访问所有内部工作。不过我更喜欢用PHP动态完成。这只在内容页上起作用,不会阻止iFrame加载任何其他域。这需要在内容站点上完成,可以通过服务器端脚本、服务器配置,也可以是javascript,但正如您所说的,如果关闭,则该选项将不起作用。