Php iframe的远程主机

Php iframe的远程主机,php,javascript,dns,Php,Javascript,Dns,我在各种网站上都有iFrame。在我的js中,我遇到了另一个域中的php文件。有没有办法获取iFrame所在服务器的域名。(这是为了防止其他人攻击我的php文件) 例如。 我有一个域名叫www.domain.com,另一个域名叫www.phpscript.com 如果我的网站嵌入了雅虎。有没有办法让我知道我的js调用来自www.domain.com,而不是某个狡猾的网站 $\u服务器['REMOTE\u HOST']和$\u服务器['REMOTE\u ADDR']在这种情况下不起作用,因为REM

我在各种网站上都有iFrame。在我的js中,我遇到了另一个域中的php文件。有没有办法获取iFrame所在服务器的域名。(这是为了防止其他人攻击我的php文件)

例如。 我有一个域名叫
www.domain.com
,另一个域名叫
www.phpscript.com
如果我的网站嵌入了雅虎。有没有办法让我知道我的js调用来自
www.domain.com
,而不是某个狡猾的网站

$\u服务器['REMOTE\u HOST']
$\u服务器['REMOTE\u ADDR']
在这种情况下不起作用,因为
REMOTE\u ADDR
将为用户提供IP,而
REMOTE\u HOST
将返回
yahoo
编辑:

OP想要做与我最初解释问题相反的事情

要防止站点不在iframe中时被访问,您可以使用:

<script type="text/javascript">
if (window.top === window.self) {

    window.self.location = 'about:blank'; 
    window.self.onload=function(evt){ 
        window.self.location = 'about:blank'; 
        document.body.innerHTML=''; 
    };
    document.body.innerHTML='';
}
</script>
您还可以使用JavaScript解决此问题,以停止通过iFrame访问站点:

if (window.top !== window.self) { 
    window.self.location = 'about:blank'; 
    window.self.onload=function(evt){ 
        window.self.location = 'about:blank'; 
        document.body.innerHTML=''; 
    }; 
    document.body.innerHTML='';
}

这两种方法都依赖于浏览器支持,但总比什么都不支持要好。

如果您希望允许跨帧交互,但只允许在域的子集内进行交互,则需要使用扩展。目前,这只在Firefox和Chrome中实现(不是MISE,不知道Safari和Opera等),但它是w3c标准,所以希望所有人最终都能加入

因此,对于运行在Example.com上的php脚本,允许从other.com访问(反之亦然)


注意:启用CSP时还有其他含义

只有http referer,它并不总是可用的,而且绝大多数情况下都不可靠。这是一个问题,它不够可靠:(它不会返回
yahoo
吗?该网站是围绕iframes中使用而构建的。因为它是一个视频播放器。所以阻止iframe不是一个解决方案。如果你只在顶部框架上使用JavaScript,那就行了-其他框架不必包含该脚本(当然,聪明的用户可以嵌入不受保护的框架)。您的框架是加载完整页面还是仅加载内容。具有所有必需的html标记和视频播放器+它的组件。您应该能够将JavaScript仅放在父页面上。无论如何,您可以在PHP中设置的标题应该足够有效,并且不会阻止您访问自己的框架。视频播放器位于100多个站点。它们也在不同的域中,我也没有访问权限
if (window.top !== window.self) { 
    window.self.location = 'about:blank'; 
    window.self.onload=function(evt){ 
        window.self.location = 'about:blank'; 
        document.body.innerHTML=''; 
    }; 
    document.body.innerHTML='';
}
$ok="'self',*.other.com,*.example.com";
$policy="default-src $ok; frame-ancestors: $ok";
header("X-Content-Security-Policy: $policy");
header("X-Webkit-CSP: $policy");
header("Content-Security-Policy: $policy");