iframe的子操作父窗口,父操作子窗口:

test.php:

<!DOCTYPE html>
<html>
<head><title>test</title>
</head>
<body>
<input type="text" name="csrf" id="csrf" value="parent">
<iframe src="http://127.0.0.1/csp/a.html" id="iframe"></iframe>
<script type="text/javascript">window.onload=function(){var ifr = document.getElementsByTagName('iframe')[0];alert(ifr.contentWindow.document.getElementById("csrf").value); //通过contentWindow获取子窗口中的csrf属性alert(ifr.contentDocument.getElementById('csrf').value);        //通过contentDocument 操作子窗口csrf的属性}</script>
<!-- <script type="text/javascript" src="data:,alert(document.cookie)"></script> --> //src后面可以写js语句
</body>
</html>

a.html

<!DOCTYPE html>
<html>
<head><title>test</title>
</head>
<body>
<input type="hidden" name="csrf" id="csrf" value="child">
<input type="text" name="csrf" id="csrf" value="1234312321">
<script type="text/javascript">alert(parent.document.getElementById('csrf').value); //通过parent向上跳一级alert(top.document.getElementById('csrf').value);     //直接跳到最顶层窗口</script>
</body>
</html>

子操作父窗口:

父操作子:

以上是在同域下操作的,可对不同页面读写操作,

如果将iframe的srcs修改为<iframe src="http://www.123.com/csp/a.html" id="iframe"></iframe>就会有如下报错:

所以可以得到如下结论:

iframe可以引入其他域的内容(只是可读的),引入本域的内容(可读可写)

1、header("X-Frame-Options:DENY"); //只要被iframe,就显示空白。

2、header("X-Frame-Options:SAMEORIGIN");  //只允许同源加载

3、header("X-Frame-Options: ALLOW-FROM https://newsn.net/");  //表示该页面可以在指定来源的 frame 中展示。

4、header("Content-Security-Policy: frame-ancestors yourdomain.com");  //chrome不支持3选项,用这个指令来设置。

在互联网发展历史上,iframe和被iframe是个永远的斗争话题,早已经从最开始的目的跑偏,已经发展为非法套别人页面,

甚至黑客技术中的点击劫持。因为,已经上升到内容和安全的高度,所以,这个iframe的问题,正日益被大家所重视。

测试1.加载test.php的内容,被拒绝。

测试2、加载同源的可以

测试三:加载外域的被拒绝。

测试四:

当测试下面的时候,发现不能如我们所愿。这个问题可能是浏览器不兼容,以后在测试

header("X-Frame-Options: ALLOW-FROM http://www.123.com/");
header("Content-Security-Policy: frame-ancestors http://www.123.com/");

参考链接:

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/X-Frame-Options

https://newsn.net/say/x-frame-options-and-iframe.html

转载于:https://www.cnblogs.com/afanti/p/9299357.html

x-frame-options、iframe与iframe的一些操作相关推荐

  1. 使用iframe的优缺点,为什么少用iframe以及iframe和frame的区别。

    出处:http://gongxquan.blog.163.com/blog/static/2108462532012111643039216 使用iframe的优缺点,为什么少用iframe以及ifr ...

  2. 网页设计与布局(frame、frameset和iframe的区别

    我今天在做一个项目时忽然想起了局部刷新的效果,开始想的是用AJAX的UpdatePanel来实现这种效果,但是UupdatePanel频繁刷新,会给服务器带来很大的负荷,大大降低了效率,达不到很好的效 ...

  3. 帆软iframe 嵌套页面,dom操作

    // 显示帆软的查询组件的时候,动态控制是否显示this.$nextTick(() => {const iframe = window.frames.iFrameconst handleLoad ...

  4. html frame滚动条,如何修改 iframe 滚动条样式

    项目中用到了 iframe,由于显示效果,想要修改一下滚动条样式,通过修改 css 样式在 chrome 下无效,而在 safari 中显示正常,不知道什么原因,求大佬们指点 写了个测试代码: ind ...

  5. html frame 的src属性,iframe标签的src属性

    jQuery怎么给iframe的src赋值 给iframe src赋值,代码如下: 特别注意: 1.上述jquery代码不能缺少 $(document).ready(); ,否则iframe src赋 ...

  6. iframe加载完成后操作contentDocument

    如何实现在iFrame加载相应的aspx 完成后再操作contentDocument中的元素? 思路: 先判断iframe的readyState是不是完成状态,如果是就进行相应的操作,否则延迟一定的时 ...

  7. iframe和iframe实现页面内嵌套一个页面(jsp)

    相信刚学习javaweb的同学都十分好奇页面上点击一个按钮下面就显示一个页面,点击不同的导航栏按钮,下方就会显示不同内容,这就用到了iframe标签的src属性.下面就给大家介绍一下iframe的使用 ...

  8. js控制Iframe 和 iframe与主页的交互,传值 (转载)

    HTML框架IFrame下利用JS在主页面和子页面间传值 今天写的程序涉及到JS框架传值的问题,这些是我找到的一些资料   下面主页面和子页面互相传值的DEMO 如果仅仅需要子页面触发主页面的函数 仅 ...

  9. jsp iframe嵌入php,jsp嵌套iframe从iframe中表单提交并传值到外层_html/css_WEB-ITnose

    今天因需求迭代 更改元来代码 遇到了这么个问题 就是想在 iframe中提交后进行整个页面的跳转 并把iframe中的值传到外层jsp 大概就是这个样子 外层 a.jsp 内层 b.jsp 于是想当然 ...

最新文章

  1. python多大储存空间不足怎么办_Python存储空间不足
  2. Spring Boot中使用JdbcTemplate访问数据库
  3. LeetCode Algorithm 118. 杨辉三角
  4. MySQL社区介绍_mysql社区服务器
  5. jquery--- 属性和样式的操作 设置和获取HTML、文本和值、焦点事件
  6. c语言合法自定义标识符_计算机二级C语言干货来了
  7. 合肥师范学院计算机与技术,合肥师范学院计算机科学与技术系JAVA复习提纲
  8. Lethean结点搭建
  9. Linux给驱动模块传参数(module_param()用法)
  10. Android Studio控制台输出乱码,编译时期输出乱码,outpot乱码解决
  11. JDK API下载
  12. c语言电子钢琴课程设计,单片机课程设计(电子琴).doc
  13. java毕业设计_基于java的毕业设计
  14. 软件测试学习之悟空CRM项目测试
  15. 计算机管理格式化硬盘,教你电脑怎么格式化硬盘
  16. 高通APQ8009w LTR303_ALS 光感(sensor)兼容模式调试
  17. CAS单点登录【1】-理论(cas架构、https、SSL、TLS、非对称加密、证书、CA、握手)、OpenSSL、cas(认证、指定加密策略)
  18. 计算机硬盘从盘的设置,图文解说:电脑硬盘的主从盘设置方法_清风一笑
  19. 使用 Transformer 序列到序列的钢琴转录
  20. python搭建 ADLINE 网络判断男女

热门文章

  1. 计算机远程桌面在哪里打开,电脑开启远程桌面的方法
  2. dubbo/dubbox(一)源码编译
  3. C语言:自定义函数中调用自定义函数的方法
  4. 短视频系统源代码,加载本地图片和加载网络图片
  5. JS window 对象 打开新窗口
  6. nginx全天候监测大流量可疑ip的封禁脚本
  7. 电脑计算机怎么用键盘计算,电脑计算器还能这么用?
  8. 牛津英语字典pdf下载_除了long time no see,你知道还有这些中式英语也进入了牛津字典吗...
  9. Linux内网离线安装nginx(rpm包安装方式)
  10. MySQL怎么添加字段在指定列位置、怎么一次添加多个字段?