`
up2vs
  • 浏览: 2780 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

跨域代理页执行Javascript控制TOP窗体dom,安全问题.

阅读更多
各位好,近期我在工作中遇到这么一个问题:

在一个b/s软件系统后台嵌入一个跨越的iframe来推送和软件有关的官方信息。

但由于软件系统可能会在局域网部署,所以就遇到iframe出现404的错误页面,体验很不好。

————

我的解决方法是:

1.嵌入到软件端的iframe(FRM01)默认visibility :hidden;
2.软件端建立接收代理页请求接口,并再将此接口url带入(FRM01) src的get参数。
3.在(FRM01)中再嵌入一个代理iframe(FRM02)
4.当(FRM01)成功被加载时,把需要执行的脚本字符POST方式提交到(FRM02)软件端接口,软件端直接echo脚本。
[形成同域,脚本中可直接用top.document控制软件端dom]


遇到的问题:

---safari浏览器的默认安全策略会禁止脚本的执行。---

此问题纠结好久,最终测试发现 safari浏览器会判断POST请求中是否有包含response脚本代码块。如果有,则会被安全策略禁止。

那么简单的解决办法就是把post请求过去的脚本代码编码(base64),在软件接口端解码echo输出。问题被解决!



——————

这样的实现细心的朋友可以发现,在嵌入官方的那个iframe中可以放入任意javascript 代码,被客户端请求执行。

————————


关于安全上面我考虑的不多,不知道有没有什么隐患?请各位讨论。

  • 大小: 105.4 KB
分享到:
评论

相关推荐

    js 父窗体子窗体数据交互

    在浏览器环境中,JavaScript可以操作DOM(文档对象模型),控制页面元素,发送AJAX请求,以及处理用户事件。 2. **DHTML(动态HTML)**: DHTML是HTML、CSS和JavaScript结合使用的技术,它允许网页内容在不刷新...

    window.open父子窗口传值问题

    在Web开发中,`window.open` 是一个JavaScript函数,它用于打开新的浏览器窗口或标签页。这个函数在处理用户交互,比如点击按钮打开新页面,或者在不同窗口间传递数据时非常常见。当我们谈论“window.open父子窗口...

    Jquery方式获取iframe页面中的 Dom元素

    这是因为浏览器安全策略不允许跨域访问DOM。 首先,确保iframe元素在HTML页面中有正确的id属性。在本例中,该属性值为“frame_1”。其次,需要在主页面中引入jQuery库。这可以通过在标签中引入在线的jQuery库链接来...

    JQuery跨域访问解决方案

    在Web开发中,由于同源策略的限制,JavaScript通常无法直接访问不同域名下的资源,这就是所谓的跨域问题。然而,为了实现诸如AJAX异步数据交互等需求,开发者需要找到解决这一问题的方法。jQuery作为流行的...

    《JavaScript权威指南(第5版)》--高清带目录

    9. 网络安全:讨论JavaScript在客户端执行时可能面临的安全问题,如跨站脚本攻击(XSS)和跨站请求伪造(CSRF)。 10. JavaScript的高级技术:可能包括高级函数特性,如递归、闭包、模块模式、命名空间等。 11. ...

    iframe与父页面传值

    `iframe`与父页面之间的通信是前端开发中的一个重要知识点,它涉及到跨域安全策略、JavaScript编程以及DOM操作等多个方面。 一、`iframe`的基本使用 在HTML中,`<iframe>`标签用于插入一个内联框架。基本语法如下:...

    子窗体与父窗体传值示例js代码

    在JavaScript编程中,子窗体与父窗体之间的通信是一个常见的需求,特别是在处理用户...需要注意的是,跨域安全策略可能会影响子窗体与父窗体之间的通信,因此在进行此类操作时,确保它们在同一域名下或者允许跨域设置。

    iframe应用

    获取了这个`window`对象之后,就可以执行一系列的操作,例如调用子窗体中的JavaScript函数、修改子窗体的DOM等。 #### 二、获取iframe的document对象 除了访问`iframe`的`window`对象之外,有时候还需要直接操作`...

    javasrcipt母子窗体传送数的小例子

    在JavaScript编程中,母子窗体间的通信是一个常见的需求,特别是在构建复杂的Web应用程序时。这个例子将探讨如何在两个浏览器窗口之间传递数据,主要聚焦于从父窗口向子窗口发送数据,以及子窗口如何接收并处理这些...

    iframe与父页面传值(方法互调)

    首先,我们可以通过JavaScript的DOM(Document Object Model)接口来实现`iframe`与父页面之间的通信。在`iframe`内的页面,我们可以使用`parent`对象来访问父页面的全局变量和函数。例如,如果在`iframe`内想要调用...

    jQuery实现iframe父窗体和子窗体的相互调用

    这种情况下,可能需要使用postMessage API来安全地跨域通信。 此外,我们还应该考虑不同浏览器对iframe的兼容性和安全性。例如,IE6浏览器在处理iframe时有一些独特的限制。在使用iframe的时候,一定要确保了解当前...

    前端笔试题-2020年2月27日.docx

    19. **Vue.js template编译**:template首先被转换成AST抽象语法树,然后编译成render函数,最后执行render函数生成真实DOM。 20. **Vuex实现原理**:状态管理库,核心是store,包含state、mutations、actions、...

    浏览器(WebBrowser)

    2. 安全性:运行不受信任的网页代码可能会引入安全风险,应谨慎处理跨域请求和JavaScript执行。 3. 性能:在处理大量或复杂的网页时,WebBrowser控件可能会消耗较多系统资源,应考虑优化或替代方案。 总结,...

    iframe父子传值

    同源策略规定,只有相同协议、域名和端口的两个页面才能相互访问彼此的DOM元素和JavaScript变量。因此,如果`iframe`的源URL与包含它的页面不同源,那么它们之间的通信就会受到限制。 ### 2. 父向子传值 #### 2.1 ...

    java内嵌浏览器jxbrowser使用教程

    2. 执行JavaScript代码:使用`executeJavaScript()`方法执行自定义的JavaScript代码。 3. 获取网页内容:通过`getDocument()`获取DOM文档,`getTitle()`获取页面标题,`getURL()`获取当前页面URL。 4. 交互与回调:...

    使用webbrowser2控件做的浏览器

    - **安全性**:使用时需注意跨域、注入攻击等问题,尤其是在执行用户输入的JavaScript代码时。 - **性能**:对于大量或复杂的网页,Webbrowser2控件可能会消耗较多资源,影响应用性能。 5. **扩展功能** - **第...

    JavaScript权威指南(第6版)

    《JavaScript权威指南(第6版)》主要讲述的内容涵盖JavaScript语言本身,以及Web浏览器所实现的JavaScript API。本书第6版涵盖了HTML5和ECMAScript 5,很多章节完全重写,增加了当今Web开发的最佳实践的内容,新增...

    JavaScript权威指南(第6版)(中文版)

    《JavaScript权威指南(第6版)》主要讲述的内容涵盖JavaScript语言本身,以及Web浏览器所实现的JavaScript API。本书第6版涵盖了HTML5和ECMAScript 5,很多章节完全重写,增加了当今Web开发的最佳实践的内容,新增...

    Winform开发示例之WebBrowser

    - WebBrowser控件依赖于用户的系统设置,可能受到IE的安全策略限制,需要在应用中适当地处理跨域、权限等问题。 - 鉴于IE内核的逐步淘汰,对于新项目,可能需要考虑使用更现代的Chromium Embedded Framework (CEF)...

Global site tag (gtag.js) - Google Analytics