如何避免我的网站被嵌入到iFrame中加载

3
为了避免XRS,我会检查我的网站是在主窗口还是在框架或iframe中加载。是否可以从请求的服务器端检查浏览器地址栏或框架或iframe的src属性。如果无法在服务器端进行检查,则如何使用jQuery进行检查?谢谢帮助。
1个回答

5

请使用框架杀手。

CSS:

<style>
html{display:none;}
</style>

Javascript:

<script>
function frameKiller() {
    if (self == top) {
        document.documentElement.style.display = 'block';
    } else {
        top.location = self.location;
    }
}
</script>

接下来在需要保护的页面上调用framekiller函数

Jquery:

$(function () {
    frameKiller();
});

完整示例:

<!DOCTYPE html>
<head>
<title>Page Title</title>

<style>
html{display:none;}
</style>

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>

</head>

<body>

Page Content

<script>
function frameKiller() {
    if (self == top) {
        document.documentElement.style.display = 'block';
    } else {
        top.location = self.location;
    }
}

$(function () {
    frameKiller();
});
</script>

</body>

</html>

为了测试,尝试从不同的域加载此页面到一个 iframe 中。


请解释这是如何工作的,或者提供一些有用的链接。 - Gaurang Tandon
添加了一个如何使用的示例。有关如何调用JavaScript函数的另一个参考,请访问此处:http://www.w3schools.com/js/js_functions.asp - Patriotec
好的,谢谢。之前一直在理解上有困难,现在好了! - Gaurang Tandon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接