在页面中显示iframe,仅对来自特定引用的访问者


Show iframe in a page to only visitors coming from particular referrer

现在我有了一个站点:

www.abc.com

我在这里提供观看视频或一些书面内容的链接。但是内容在:

www.xyz.com

例如,我有一个视频嵌入在页面www.xyz.com/tops/的iframe中,可以通过url www.xyz.com/tops/pqrs.php?file=123456查看。现在我希望在www.xyz.com/tops/页面上的iframe对来自www.abc.com的人可见。对于直接访问www.xyz.com/tops/页面的其他人,除了嵌入在该页面中的iframe之外,所有内容都应该是可见的。在那个页面上也有其他内容....在所有内容之间,我嵌入了这个iframe元素。因此,对于每个直接访问www.xyz.com/tops/页面的人来说,除了嵌入在该页面的iframe之外,所有内容都应该是可见的。

我如何做到这一点?

谢谢:)

我现在将尝试以下两种方法。与此同时,在搜索一些网站,做什么我确实需要,我找到了一个。主要网址为:

www.siteA.com

链接被放置在:

http://siteA.com/redirector.php?r=http://siteB.com/Page/& s = 123456

当我点击链接时,它把我带到:

http://siteB.com/Page/

,相关视频正在iframe中播放。我检查源代码。我在iframe嵌入的地方发现了这个:

<div style="padding: 6px">
</div>
<div id="showvideoplayer"></div>
<div id="container"></div>
<iframe frameborder='0' width='730' height='415' src='http://www.dailymotion.com/embed/video/somecode'></iframe> <div style='padding: 8px'>
</div>

现在我只是通过点击地址栏然后按回车键重新加载页面(不是通过按F5或重新加载按钮)。现在视频是不可见的,但其他页面的内容是一样的。我现在再次检查了源代码:

<div style="padding: 6px">
</div>
<div id="showvideoplayer"></div>
<div id="container"></div>
这次iframe元素不在那里。就连我也想这么做。但如何?

www139答案的扩展版:

session_start();
if ( !isset( $_SESSION["origURL"] ) )
    $_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];
//...
if ($_SESSION["origURL"] !== "www.xyz.com/tops/") {
  echo "<iframe>..."
}

注意,这将只工作,如果URL是"www.xyz.com/tops/"。使用正则表达式包含所有大小写

节选自:https://www.nczonline.net/blog/2013/04/16/getting-the-url-of-an-iframes-parent/

在xyz.com页面上,有一个检测父url的脚本,并显示你感兴趣的内容,如果它是框架的或不是。

function getParentUrl() {
var isInIframe = (parent !== window),
    parentUrl = null;
if (isInIframe) {
    parentUrl = document.referrer;
}
    return parentUrl;
}

注意这个方法并没有提供一种安全的方式来阻止用户看到内容,只是方便地显示和隐藏内容。