页面嵌入dom与被嵌入iframe的攻防

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了页面嵌入dom与被嵌入iframe的攻防相关的知识,希望对你有一定的参考价值。

1.情景一:自己的页面被引入(嵌入)至别人的页面iframe中


 

if(window.self != window.top){
  //url是自己页面的url
  window.top.location.href = url 
}

通过顶层框架的判断,得知自己所在的框架是否是顶层框架。来判断自己页面所在的情况。

 

知识点:不同域中的iframe不能相互访问。

比如我们的页面在别人的页面iframe中,我们的页面跟别人的页面就在不同的域中。

这时候我们通过window.top.location是无法访问location对象的属性的。

但是我们可以设置window.top.location.href。

 

2.情景二:我们自己的页面被别的js攻击,写入了一个dom。


 

 

 使用html5最新提供的MutationObserver,可以监控你所选择的dom区域的dom变动。

 这样我们就可以检测到插入的是什么节点,并且获取节点。

 比如插入的一段script,script中只有一个alert(),那就非常危险了。检测到后进行removeChild()。

 

以上是关于页面嵌入dom与被嵌入iframe的攻防的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式iframe子页面与父页面js通信方式

从 google-site 上的嵌入式(iframe)片段,引用存储在 google 驱动器上的 json 文件

iframe嵌入页面不能全部展示

HTML,VUE,嵌入iframe,实现iframe的100%高度和宽度,代码分享

为啥iframe嵌入页面字号比原始页面字号的要小

iframe如何自适应高度,父页面嵌入子页面