我想为我的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
逻辑保持不变,只在服务器端.检查引荐来源,如果已付款域名或您自己的域名,请继续.否则,发送此标题.