2

我在带有视频流的页面上使用此代码来防止人们对其进行 iframe:

<script>if(self != top) { top.location = self.location; }</script>

但现在我想允许一个或多个域使用 iframe 嵌入页面。我查看了stackoverflow,发现了这个:

<script type="text/javascript">
if (window.top.location.host != "website.com") {
document.body.innerHTML = "Access Denied";
}
 </script>

但它不起作用。我知道一定有办法,因为我记得 2 年前有一个网站有这样的东西,当我试图用 iframe 嵌入他们的页面时,它把我重定向到一个成人网站,而 iframe 只在他们的域上工作。

看起来我解决了问题

<script>
if (top.location.host != "example.com") {
    window.location.href='http://example.com/redirected';
}
</script>
4

1 回答 1

1

这不是正确的方法。你应该改用这个:

https://developer.mozilla.org/en-US/docs/HTTP/X-Frame-Options

<meta http-equiv="X-Frame-Options" content="deny">

或者:

<meta http-equiv="X-Frame-Options" content="sameorigin">

这是因为 javascript 可以很容易地从父窗口绕过。

支持它的浏览器:

  • IE8
  • 苹果浏览器
  • 铬合金
  • 带有 NoScript 插件的 Firefox

编辑:看到你想使用跨站点脚本,你将不得不绕过同源策略

于 2013-08-14T20:13:59.403 回答