【发布时间】:2010-11-05 07:05:20
【问题描述】:
我已经查看并尝试过,但不知道在哪里可以阻止某些人通过 IFrame 或Thickbox 浏览我的网站?
我想阻止被禁止的成员通过代理站点访问该站点,这些代理站点使最终用户能够通过 IFrame 进行浏览。我知道没有什么可以完全证明,但它仍然值得提问。
【问题讨论】:
标签: php javascript iframe
我已经查看并尝试过,但不知道在哪里可以阻止某些人通过 IFrame 或Thickbox 浏览我的网站?
我想阻止被禁止的成员通过代理站点访问该站点,这些代理站点使最终用户能够通过 IFrame 进行浏览。我知道没有什么可以完全证明,但它仍然值得提问。
【问题讨论】:
标签: php javascript iframe
啊,但是这里是response 到Jeff Atwoods blog post。 (反反框架突围)有可能。
Go figure, it was a question on Stackoverflow as well. 发帖者猜猜谁?答案和我贴的链接类似:
if(top != self) {
top.onbeforeunload = function() {};
top.location.replace(self.location.href);
}
【讨论】:
查看 SO 自己的 Jeff Atwood 关于这个问题的 cmets...
Coding Horror - We Done Been ... Framed!
归结为没有可靠的方法可以做到这一点。您可以尝试框架突破,但恶意编码人员总是能够添加更多代码并绕过您可能添加的任何“保护”。
【讨论】:
altCognito 是对的,你想破坏框架突破。
下面是the postaltCognito发给你的源代码。
<script type="text/javascript">
if (top.location != self.location)
top.location = self.location;
</script>
但是,我认为您甚至可能想更进一步。您可能希望进行一系列检查,不仅要查找 top,还要查找 parent 和 window。
<script type="text/javascript">
var self = self.location;
var top = top.location;
var parent = parent.location;
var window = window.location;
if (top != self || parent != self || window != self )
window = self;
</script>
【讨论】:
<script>
var isInIframe = (window.location != window.parent.location) ? true : false;
if(isInIframe)
{
alert("Window is in iframe");
//Do what you want
//top.location.href=self.location;
}
else
{
alert("Window is not in iframe");
}
</script>
【讨论】:
你可以在你的头文件中试试这个简单的js
if (window.top !== window.self) window.top.location.replace(window.self.location.href);
【讨论】: