【问题标题】:How to avoid loading my site in iFrame如何避免在 iFrame 中加载我的网站
【发布时间】:2014-04-22 08:52:51
【问题描述】:

为了避免 XRS,我会检查我的网站加载位置,在主窗口或框架或 iframe 中。 是否可以在服务器端检查来自哪里的请求,即浏览器地址行或框架或 iframe 的 src 属性。 如果在服务器端不可能,那么 jQuery 怎么可能? 感谢您的帮助。

【问题讨论】:

    标签: jquery security iframe frame


    【解决方案1】:

    使用框架杀手。

    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。

    【讨论】:

    • 请解释这是如何工作的。或者提供一些有用的链接。
    • 添加了如何使用的示例。有关如何调用 javascript 函数的另一个参考,请转到此处:w3schools.com/js/js_functions.asp
    • 好的,谢谢。之前一直难以理解。现在好了!
    猜你喜欢
    • 1970-01-01
    • 2017-11-03
    • 2013-11-19
    • 2011-07-05
    • 1970-01-01
    • 2022-08-21
    • 1970-01-01
    • 2013-09-18
    • 2019-04-18
    相关资源
    最近更新 更多