我如何知道(在服务器端)是否有人从iframe或直接来到它?见里面

时间:2013-06-12 21:42:45

标签: php javascript html referrer

说,我有一个网址为site.com。我如何知道推荐人是否从iframe获取我的网址,如下所示:     <iframe src="http://site.com"></iframe>或推荐人点击(!!)某个网站上的此链接,其中链接是常用的标记:<a href="http://site.com">go to site</a>

我想在服务器端告诉那两者。也许,有一种方法可以通过JS做到这一点?提前谢谢。

3 个答案:

答案 0 :(得分:2)

可以在javascript中完成,但不能直接在服务器端完成。但是,您可以通过使用简单的javascript重定向这两种情况之一来将此信息传递给服务器:

if (window.self === window.top) {
  // you're not in an iframe
} else {
  // in an iframe (or other frames), act accordingly
}

或者,如果您只是想阻止在iframe中查看您的网站,可以通过发送X-Frame-Options header来执行此操作。

答案 1 :(得分:0)

Javascript只是客户端(除非您使用的是Node.js),因此无法在服务器端告知是否正在从iframe或普通超链接引用某些内容。

你想要这样做的原因是什么?看起来你似乎必须找到解决问题的另一种方法。

答案 2 :(得分:0)

如果您试图阻止您的网站显示在iframe中,那么您可以使用破解框脚本的最佳方法之一。 (请注意,您的网络服务器仍会发出请求/响应)。

在您希望不被“框架化”的任何文档的<head>中包含以下内容。

<style id="antiClickjack">body{display:none !important;}</style>
<script type="text/javascript">
   if (self === top) {
       var antiClickjack = document.getElementById("antiClickjack");
       antiClickjack.parentNode.removeChild(antiClickjack);
   } else {
       top.location = self.location;
   }
</script>