x-frame-options、iframe与iframe的一些操作
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的一些操作相关推荐
- 使用iframe的优缺点,为什么少用iframe以及iframe和frame的区别。
出处:http://gongxquan.blog.163.com/blog/static/2108462532012111643039216 使用iframe的优缺点,为什么少用iframe以及ifr ...
- 网页设计与布局(frame、frameset和iframe的区别
我今天在做一个项目时忽然想起了局部刷新的效果,开始想的是用AJAX的UpdatePanel来实现这种效果,但是UupdatePanel频繁刷新,会给服务器带来很大的负荷,大大降低了效率,达不到很好的效 ...
- 帆软iframe 嵌套页面,dom操作
// 显示帆软的查询组件的时候,动态控制是否显示this.$nextTick(() => {const iframe = window.frames.iFrameconst handleLoad ...
- html frame滚动条,如何修改 iframe 滚动条样式
项目中用到了 iframe,由于显示效果,想要修改一下滚动条样式,通过修改 css 样式在 chrome 下无效,而在 safari 中显示正常,不知道什么原因,求大佬们指点 写了个测试代码: ind ...
- html frame 的src属性,iframe标签的src属性
jQuery怎么给iframe的src赋值 给iframe src赋值,代码如下: 特别注意: 1.上述jquery代码不能缺少 $(document).ready(); ,否则iframe src赋 ...
- iframe加载完成后操作contentDocument
如何实现在iFrame加载相应的aspx 完成后再操作contentDocument中的元素? 思路: 先判断iframe的readyState是不是完成状态,如果是就进行相应的操作,否则延迟一定的时 ...
- iframe和iframe实现页面内嵌套一个页面(jsp)
相信刚学习javaweb的同学都十分好奇页面上点击一个按钮下面就显示一个页面,点击不同的导航栏按钮,下方就会显示不同内容,这就用到了iframe标签的src属性.下面就给大家介绍一下iframe的使用 ...
- js控制Iframe 和 iframe与主页的交互,传值 (转载)
HTML框架IFrame下利用JS在主页面和子页面间传值 今天写的程序涉及到JS框架传值的问题,这些是我找到的一些资料 下面主页面和子页面互相传值的DEMO 如果仅仅需要子页面触发主页面的函数 仅 ...
- jsp iframe嵌入php,jsp嵌套iframe从iframe中表单提交并传值到外层_html/css_WEB-ITnose
今天因需求迭代 更改元来代码 遇到了这么个问题 就是想在 iframe中提交后进行整个页面的跳转 并把iframe中的值传到外层jsp 大概就是这个样子 外层 a.jsp 内层 b.jsp 于是想当然 ...
最新文章
- python多大储存空间不足怎么办_Python存储空间不足
- Spring Boot中使用JdbcTemplate访问数据库
- LeetCode Algorithm 118. 杨辉三角
- MySQL社区介绍_mysql社区服务器
- jquery--- 属性和样式的操作 设置和获取HTML、文本和值、焦点事件
- c语言合法自定义标识符_计算机二级C语言干货来了
- 合肥师范学院计算机与技术,合肥师范学院计算机科学与技术系JAVA复习提纲
- Lethean结点搭建
- Linux给驱动模块传参数(module_param()用法)
- Android Studio控制台输出乱码,编译时期输出乱码,outpot乱码解决
- JDK API下载
- c语言电子钢琴课程设计,单片机课程设计(电子琴).doc
- java毕业设计_基于java的毕业设计
- 软件测试学习之悟空CRM项目测试
- 计算机管理格式化硬盘,教你电脑怎么格式化硬盘
- 高通APQ8009w LTR303_ALS 光感(sensor)兼容模式调试
- CAS单点登录【1】-理论(cas架构、https、SSL、TLS、非对称加密、证书、CA、握手)、OpenSSL、cas(认证、指定加密策略)
- 计算机硬盘从盘的设置,图文解说:电脑硬盘的主从盘设置方法_清风一笑
- 使用 Transformer 序列到序列的钢琴转录
- python搭建 ADLINE 网络判断男女
热门文章
- 计算机远程桌面在哪里打开,电脑开启远程桌面的方法
- dubbo/dubbox(一)源码编译
- C语言:自定义函数中调用自定义函数的方法
- 短视频系统源代码,加载本地图片和加载网络图片
- JS window 对象 打开新窗口
- nginx全天候监测大流量可疑ip的封禁脚本
- 电脑计算机怎么用键盘计算,电脑计算器还能这么用?
- 牛津英语字典pdf下载_除了long time no see,你知道还有这些中式英语也进入了牛津字典吗...
- Linux内网离线安装nginx(rpm包安装方式)
- MySQL怎么添加字段在指定列位置、怎么一次添加多个字段?