首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

新窗口创建问题 | Electron 安全

,突然在当前窗口之外跳出来一个窗口,那就是一个新窗口创建了 Electron ,一个新窗口创建背后都意味着存在对应管理操作,这种管理可能可以让窗口赋予非凡权限,例如执行 Node.js 创建新窗口分为两种...版 & Github 往期文章 0x01 哪些情况下会创建新窗口 之前章节,我们尝试过使用 BrowserWindow、BaseWindow 主进程创建窗口,同时我们尝试渲染进程通过...我们还是按照两类来说,主进程创建新窗口和渲染进程创建新窗口 主进程创建新窗口基本上都是固定窗口,所以如果说危害,除了窗口安全配置不合理,权限分配不合理之外,如果窗口创建配置参数存在用户可控制情况...(这里主要是窗口加载内容以及安全配置),可能带来一些危害 渲染进程创建新窗口之前文章中出现过绕过安全限制情况(iframe + window.open) ,但 window.open 不仅仅是绕过安全限制那么简单...,其实在 Electron window.open 是可以配置安全策略,也就是说有可能执行 Node.js window.open 打开窗口配置优先级为(向下递减) webContents.setWindowOpenHandler

14710

新窗口打开页面?小心有坑!

url)新窗口打开页面时,会存在潜在安全问题。...这个锅是一个叫opener全局对象锅。 回到例子1,可以自己动手尝试打开那个页面打开console, 输入opener,可以看到这个对象,正是打开本页面的父页面的窗口对象。...如果不看url根本区分不出来是钓鱼页面(父窗口刚打开时候好好,谁会关注到这个url居然悄悄地变了呢?) 3.2 性能问题 除了安全问题,例子2还展示了简单地新窗口打开页面的性能问题。...例子2,新页面中有一个定时器,每隔一段时间就有一个持续循环,这个循环阻塞新页面本身js线程同时,也阻塞了opener(也就是打开新页面的父窗口)里js线程。...确实,chrome有不同标签页面使用不同进程和线程,但是有个例外,通过a标签target="_blank"属性,或者window.open(url)新窗口打开页面, 会与父窗口共用进程和线程。

5.2K21
您找到你想要的搜索结果了吗?
是的
没有找到

新窗口打开页面?小心有坑!

url)新窗口打开页面时,会存在潜在安全问题。...这个锅是一个叫opener全局对象锅。 回到例子1,可以自己动手尝试打开那个页面打开console, 输入opener,可以看到这个对象,正是打开本页面的父页面的窗口对象。...如果不看url根本区分不出来是钓鱼页面(父窗口刚打开时候好好,谁会关注到这个url居然悄悄地变了呢?) 3.2 性能问题 除了安全问题,例子2还展示了简单地新窗口打开页面的性能问题。...例子2,新页面中有一个定时器,每隔一段时间就有一个持续循环,这个循环阻塞新页面本身js线程同时,也阻塞了opener(也就是打开新页面的父窗口)里js线程。...确实,chrome有不同标签页面使用不同进程和线程,但是有个例外,通过a标签target="_blank"属性,或者window.open(url)新窗口打开页面, 会与父窗口共用进程和线程。

3.9K10

JavaScriptwindow.open()和Window Location href区别

//顶层页面打开新页面 2:window.open()用法 open() 方法用于打开一个新浏览器窗口或查找一个已命名窗口。...window.open是用来打开一个新窗口函数! 2.window.open不一定是打开一个新窗口!!!!!!!!...只要有窗口名称和window.open第二个参数一样就会将这个窗口替换,用这个特性的话可以iframe和frame来代替location.href。...","_top"); 5:是否打开其他网站地址 window.open()是可以一个网站上打开另外一个网站地址 而window.location()是只能在一个网站打开本网站网页 window.open...11:打开新页面 用window.open()打开新页面 但是用window.location.href="" 却是原窗口打开. 有时浏览器会一些安全设置window.open肯定被屏蔽。

2.1K51

JavaScriptwindow.open()和Window Location href区别「建议收藏」

//父页面打开新页面 top.location.href;//顶层页面打开新页面 2:window.open()用法 open() 方法用于打开一个新浏览器窗口或查找一个已命名窗口。...window.open是用来打开一个新窗口函数! 2.window.open不一定是打开一个新窗口!!!!!!!!...只要有窗口名称和window.open第二个参数一样就会将这个窗口替换,用这个特性的话可以iframe和frame来代替location.href。...你网址”,”_top”); 5:是否打开其他网站地址 window.open()是可以一个网站上打开另外一个网站地址 而window.location()是只能在一个网站打开本网站网页...11:打开新页面 用window.open()打开新页面 但是用window.location.href=”” 却是原窗口打开.

4K20

JavaScrtip之JS最佳实践

(url,name,features); 这个方法有三个参数: url:新窗口打开网页url地址。...(winUrl, "popup", "width=320,height=360"); } 这条语句支持"javascript:"伪协议浏览器中正常运行,但在较老浏览器则回去尝试打开那个链接但总是失败...return false语句(老版本浏览器中有用),这个链接不会真的打开。"...二、JavaScript之JS与Html代码分离第一点,已经解决浏览器禁用JS情况下,JS平稳退化问题,但是代码任然存在一点瑕疵,上面的代码如果只是少数几个超链接,倒没什么问题,但是如果有很多超链接...2.合理合并脚本固然重要,脚本html文档放置位置同样重要,因为每款浏览器都有他"并发请求数",意思是同一时间针对同一域名请求有数量限制,超过限制数目后,其余请求会被阻止,如果我们将脚本文件放到

2.1K50

javascript入门笔记2-window

语法:confirm(str); 参数说明: str:消息对话框要显示文本 返回值: Boolean值 返回值: 当用户点击”确定”按钮时,返回true 当用户点击”取消”按钮时...语法: prompt(str1, str2); 参数说明: str1: 要显示消息对话框文本,不可修改 str2:文本框内容,可以修改 返回值: 1....."); } 5.JavaScript-打开新窗口window.open) 语法:window.open([URL], [窗口名称], [参数字符串]) URL:可选参数,在窗口中要显示网页网址或路径..._blank:新窗口显示目标网页 _self:在当前窗口显示目标网页 _top:框架网页在上部窗口中显示目标网页 3.相同 name 窗口只能创建一个,要想创建多个窗口则...('http://www.imooc.com'); //将新打的窗口对象,存储变量mywin mywin.close(); 7.任务 a、新窗口打开时弹出确认框,是否打开

1.4K20

window.opener.location 安全风险讨论

浏览器,通过 标签或者 JavaScript window.open 函数,可以打开新页面。新页面的 window 对象,存在一个 opener 属性,保存对父页面的引用。...来看一个案例,假设父页面中有新窗口打开子页面链接: click me...大部分浏览器,通过父页面链接打开子页面后,子页面都可以通过opener.location 将父页面跳走(上面两行 JS 可以都可以跳转,不同之处是 replace 不产生历史纪录)。...方案 1,最新 Safari 下不能阻止跳转,并且会导致 IE 系列丢失 Referrer;方案 2,不支持 rel=noreferrer IE 中等同于默认情况,在其它浏览器可以阻止跳转,...CSP3 增加 disown-window-opener 指令,详情; 到这里为止,我们讨论都是「新窗口打开子页面将父页面跳走」所带来风险。

1.7K60

js控制浏览器新开窗打开页面

2016-07-18 09:07:01 a标签有一个属性为target,将其值设置为“_blank“,即可新开一个窗口打开页面,那么通过js也可以控制打开窗口来开启页面。...form.submit(); 如上代码,页面设置一个隐藏form表单,只不过里面不放置任何东西,提交表单几个跳转到一个新页面,同时是用一个新窗口打开。...还有一个办法就是采用window.open()方式,window.open方法可控制样式丰富,比如我们可以控制窗口显示大小,窗口显示内容,以及位置等等。...都是使用jswindow.open有一个缺点就是容易被浏览器屏蔽。本文介绍了js打开新窗口各种方法。...1.打开窗口全屏 blue function ow(owurl){ var tmp=window.open("about

6.5K20

window.open被浏览器拦截问题

)时恶意弹出窗口(如弹窗广告、打开新窗口等),影响用户体验。...,不同浏览器允许间隔时间不同,我们以FireFox为例 // 会被拦截 button.onclick = () => { // 间隔3s打开会被拦截 setTimeout(() => window.open...=> window.open('http://google.com'), 2000); }; 不同浏览器实际测试时间间隔为: Chrome:小于5s(不包括5s) FireFox:小于3s(不包括...3s) Edge:小于5s(不包括5s) Safari:小于1s(不包括1s) 参考文档:Popups and window methods 其他方式打开新窗口 网上也搜到一些使用其他方式打开新窗口方法...,但经过实际测试,异步打开新窗口情况下,只要超过了浏览器拦截机制允许间隔时间,也同样会被拦截。

3K40

window location href页面跳转几种用法及其延展「建议收藏」

如果页面自定义了frame,那么可将parent、self、top换为自定义frame名称,效果是frame窗口打开url地址。...用window.open()打开新页面 但是用window.location.href=”” 却是原窗口打开. 有时浏览器会一些安全设置window.open肯定被屏蔽。...window.open是用来打开一个新窗口函数!...然而 window,open()不一定是打开新窗口 在有窗口名称和window.open第二个参数一样就会将这个窗口替换,用这个特性的话可以iframe和frame来代替location.href...()是可以一个网站上打开另外一个网站地址 window.location()是只能在一个网站打开本网站网页 本文参考互联网上多篇博客编辑修改完成,展示出来供大家参考使用 发布者:全栈程序员栈长

4.7K10

前端开发必知:HTML、Vue和React跨域页面跳转解决方案

前端开发必知:HTML、Vue和React跨域页面跳转解决方案 摘要 猫头虎博主今天将带你探讨HTML、Vue和React环境下实现跨域页面跳转技巧和方法。...引言 日常前端开发,页面跳转是常见需求。而跨域页面跳转,由于涉及到不同域之间操作,需要我们更为小心和考虑。...和window.open方法,可以实现页面的重定向和新窗口打开。...// 重定向 window.location.href = 'https://example.com'; // 新窗口打开 window.open('https://example.com', '_blank...通过本文,我们了解了HTML、Vue和React实现跨域页面跳转基本方法,并通过代码示例展示了具体实现。希望本文能为大家在前端开发中提供一些实用帮助和参考。

17510

window.open打开页面会被浏览器拦截问题解决

window.open是javascript函数,该函数作用是打开一个新窗口或改变原窗口,如果你直接在js调用window.open()去打开一个新窗口,浏览器会拦截。...(注意:window.open(url,'_self')原窗口打开,不会被拦截)。 普通情况window.open不会拦截,但若是ajax回调里面进行window.open,会拦截!...方案1: 先window.open('_blank'),再赋值location跳转链接 // 先打开新页签 var tempWin = window.open("_blank"); // window.open...(接下来方案,各自看看试试,不保证管用,只是搜集来mark下) 方案3:采用a标签 click me # 点击这个超链接,浏览器会认为它是打开一个新链接... 缺陷:有时候需要点击时候,进行一些其他设置或操作,再跳转。所以需要在js完成。

9.6K41

Chrome下打开新窗口

一般点击打开新窗口,有几种方式: 1、超链接a  有href属性、target为_blank 2、iframe,其target为_blank 3、window.open 4、form表单提交,同样target也必须设为_blank 现在遇到一个需求: 做了一个后台运维管理系统,点击datagrid头部一个按钮,需要打开一个新窗口...因为extjs运行效率比较低,所以选择使用chrome访问系统,而在操作些按钮时候发现很多很奇特现象,这些现象只出现在chrome: 1、打开一个窗口后,些窗口不关闭,将无法打开多个窗口,即使原有窗口关闭...,就是弹出窗口是没有工具栏和地址栏,且不在新选项卡打开 后来搜索到一篇文章,有所启发,就有了如下代码: var nwin = window.open(); nwin.location = ‘xxxx...’;//需要打开地址 如果使用ajax请求地址后面的参数的话,需要将ajax改为同步,不然弹出窗口会在新窗口打开,而且没有工具栏和地址栏

3.5K30
领券