怎么在跨域中修改iframe页面内容
发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,本文小编为大家详细介绍"怎么在跨域中修改iframe页面内容",内容详细,步骤清晰,细节处理妥当,希望这篇"怎么在跨域中修改iframe页面内容"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一
千家信息网最后更新 2024年12月13日怎么在跨域中修改iframe页面内容
本文小编为大家详细介绍"怎么在跨域中修改iframe页面内容",内容详细,步骤清晰,细节处理妥当,希望这篇"怎么在跨域中修改iframe页面内容"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
原理
主站点内嵌代理页面, 并向代理页传递数据, 代理页根据主站点的数据对目标页的DOM进行操作.由于代理页与目标页同域, 所以代理页可以获取并操作目标页的document对象.
前提条件
需要将proxy.html放到与内嵌的iframe页同域的服务下, 并且可以被访问到.
使用
支持2种调用方式: 使用 postMessage 和 URL params.
postMessage
该方法需要使用 JSON.stringify 将对象转为字符串.
// Reactfunction IframeProxy(props) { handleLoad = (e) => { e.target.contentWindow.postMessage(JSON.stringify({ iframe: ``, includeStyle: ` body { background-color: yellow; } header { display: none; } footer { display: none; } `, includeScript: ` window.addEventListener('load', function() { alert(document.querySelector('body')[xss_clean]); }); `, importStyle: `http://www.mydomain.com/assets/css/import.css`, importScript: `http://www.mydomain.com/assets/js/import.js` }), 'https://www.target.com'); } return ;}
URL params
该方法需要将传递的内容用 encodeURIComponent 编码.
// Reactfunction IframeProxy(props) { var params = 'iframe=' + encodeURIComponent(` `); params += '&includeStyle=' + encodeURIComponent(` body { background-color: red; } header { display: none; } footer { display: none; } `); params += '&includeScript=' + encodeURIComponent(` window.addEventListener('load', function(event) { alert(document.querySelector('body')[xss_clean]); }); `); params += '&importStyle=' + encodeURIComponent(` http://www.mydomain.com/assets/css/import.css `); params += '&importScript=' + encodeURIComponent(` http://www.mydomain.com/assets/js/import.js `); return ;}
API:
;params: { origin: 当前站点的域名, 使用postMessage方式时必填, proxy用来校验发出消息的源域名. iframe: 需要内嵌的iframe标签字符串, includeStyle: 希望添加到iframe页的css内容, includeScript: 希望添加到iframe页的js内容, importStyle: 希望引入到iframe页的css资源链接, 如果目标站点使用安全协议(https), 资源链接使用非安全协议(http), 该功能会被浏览器禁止. importScript: 希望引入到iframe页的js资源链接, 如果目标站点使用安全协议(https), 资源链接使用非安全协议(http), 该功能会被浏览器禁止.}
注意: 处于安全问题, 默认禁用了 includeScript 和 importScript 功能, 如需启用在proxy.html中将变量 ENABLED_JS_INCLUDE 设置为 true 即可.
读到这里,这篇"怎么在跨域中修改iframe页面内容"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
内容
安全
目标
代理
页面
资源
链接
功能
文章
站点
主站点
域名
字符
字符串
对象
数据
方式
方法
浏览器
浏览
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
无锡进口刀片服务器设计
阿里云服务器如何搭建
sqlite数据库 教程
服务器硬盘取下安装上开机报警
a3 无法连接服务器
线上app可以切换服务器地址吗
东莞地产软件开发联系方式
在服务器怎么屏蔽一个人
莱芜网络安全等级
使用数据库gui时
软件开发安卓机构
服务器上uid
贵阳机架式服务器价格是多少
索菲互联网科技公司
网络安全法精讲培训
西安市 网络安全
苹果手机服务器已满
深圳多智电脑网络技术
湖南常见软件开发制造价格
计算机软件开发技术应用
内卷数据库最新得票率
手机单机软件开发需要学什么
tcp协议必须通过服务器么
百世快软件开发行业税收
pc如何设置私人服务器
SCM软件开发
大数据时代网络安全隐患
北京聚搏时代网络技术
电信服务器管理员怎么保障
智能网络安全基础知识