javascript – 选择性的Framebursting

我想为我的iframe应用程序实现选择性Framebursting.

我的iframe可以从www.mywebsite.con / iframe.aspx?lic = 1234获得

当托管我的iframe的第三方网站(PayedWebsited1.con或PayedWebsited2.con)并且lic = 1234选项也存在时,显示iframe.对于任何其他骗子,展示香蕉!

我该怎么做?

解决方法

事实是,该许可号不会以任何方式帮助 – 无论您是使用服务器端解决方案还是使用 javascript.骗子将可以在PayedWebsite1.com上看到许可证号码.

如上所述,您无法获取父框架位置,但如果您的页面加载在iframe中,则可以获取引用来源 – 它等于父框架.

if (window.top.location !== document.location) {  // only if we're in iframe
                           // we get host of our referrer
    var host = document.referrer.match(new RegExp("(http|https)://(.*?)/.*$"))[2];
    host = host.toLowerCase();  // convert to lower case
    var myHost = document.location.host.toLowerCase();
    if (
        host !== myHost                  // so we can click on links in an iframe
        && host !== 'payedwebsite1.com'
        && host !== 'payedwebsite2.com'
    ) {
        window.top.location.href = document.location.href;
    }
}

请注意,这种技术可以被打败. http://javascript.info/tutorial/clickjacking的更多信息

对于较新的浏览器,您可以发送特殊标题

x-frame-options: DENY

逻辑保持不变,只在服务器端.检查引荐来源,如果已付款域名或您自己的域名,请继续.否则,发送此标题.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...