分别为:window.parent 与 window.opener两者 ---- 简单介绍: 1、window.opener 是 window.open 打开的子页面调用父页面对象 window.opener 那么在b.html中,就可以通过window.opener(省略写为opener)来引用a.html,包括a.html的document等对象,操作a.html的内容。 附上window.opener效果图: ---- a.html的代码: <! body> <script> function aaa() { /** * //更改父页面的元素 * window.opener
用户从你的页面重定向到域,此时,浏览器会将你当前网站的所有 window 变量内容附加到恶意网站的 window.opener 变量。 恶意网站一旦通过 window.opener 访问了你的网站的 window 变量,它可以将你之前的网站重定向到一个新的钓鱼网站,这个网站可能与你打开的实际网站相似,甚至可能会要求你再次登录。 这使得恶意网站的 window.opener 的值为 null。 因此,在将用户导航到你未维护的新域时,请当心。 其他事实: 当您在锚标记上单击 CMD + LINK 时,Chrome,Firefox和Safari会将恶意网站的 window.opener 视为 null。 默认情况下,新版的Safari会在所有情况下删除 window.opener,要将窗口信息传递给新的标签页,你必须明确指定 rel=’opener’。
Page.RegisterStartupScript( “ CloseAndRefresh “ , “ <script language=’javascript’>window.close);window.opener 4、window.opener=null; 将父窗口的句柄清掉。 注:再次重申,window.opener=null;要放在window.parent.location.href=’mydocument.aspx’之后。
这里主要有两个关键点:window.top以及window.opener。这两个区别如下: window.top用于返回顶层窗口,即浏览器的窗口。 window.opener用于返回打开此页面的页面。 针对GoodsDemoDirectPage,其由GoodsDemoPage打开,所以针对GoodsDemoDirectPage来说,其window.opener指向的是GoodsDemoPage。 所以针对这个demo中我们只需要通过window.opener调用GoodsDemoPage的refreshPageLayout方法,然后在方法中使用window.top指向到当前的URL刷新即可。
比如 window.opener 属性就是一种常用的利用目标,攻击者可以通过利用 window.opener 属性来获取敏感信息。 newWindow.addEventListener('load', function() { // 获取新窗口的window对象 var targetWindow = newWindow.window; // 通过window.opener 当目标网站加载完成后,攻击者的恶意代码会通过 window.opener 属性获取源页面(用户当前所在的页面)的 window 对象。 为了减轻这种风险,我们就可以配置 Cross-Origin-Opener-Policy(COOP) 标头,在以前它有三个属性: same-origin:COOP 的默认值,只有同源页面可以通过 Window.opener
www.weiyigeek/a.html 跳转; #点击后浏览器会在新得窗口和标签页打开b.html,又假如此时b.html有如下js代码 if (window.opener /index.html") #Restricted about:blank #窗口2.index.html window.opener #Restricted https://weiyigeek.top /default.html #此时由于target属性为_blank且没有限制Window.opener访问行为执行以下语句此时窗口1将会加载下面得网站文档内容; window.opener.location.href = 'https://blog.weiyigeek.top'; 解决方法:我们唯一的目的就是限制window.opener的访问行为,此时我只需要在标签中加上一个rel="noopener"属性(chrome
www.weiyigeek/a.html 跳转; #点击后浏览器会在新得窗口和标签页打开b.html,又假如此时b.html有如下js代码 if (window.opener /index.html") #Restricted about:blank #窗口2.index.html window.opener #Restricted https://weiyigeek.top /default.html #此时由于target属性为_blank且没有限制Window.opener访问行为执行以下语句此时窗口1将会加载下面得网站文档内容; window.opener.location.href = 'https://blog.weiyigeek.top'; 解决方法:我们唯一的目的就是限制window.opener的访问行为,此时我只需要在标签中加上一个rel="noopener"属性(chrome
1 2 3 if (window.opener) { window.opener.location = "https://mimvp.com/fishing? referrer="+document.referrer; } 我相信绝大多数站点都没有恰当地处理这个问题,为了限制 window.opener的访问行为,原始页面需要在每个使用了target _blank"属性特别提示 当你浏览一个页面点击一个a标签连接 跳转到另一个页面时, 在新打开的页面(mimvp)中可以通过 window.opener mimvp.com" target="_blank" rel="noopener noreferrer"> 在chrome 49+,Opera 36+,打开添加了rel=noopener的链接, window.opener
还是上面的图 -- 切换到test.com页面(test.com页面是由test.com页面中a标签打开),在控制台查看window.opener 会发现同源站点,具有同一浏览上下文组,子页面可以使用window.opener.document 操作父页面dom image.png -- 我们切换到local.test.com页面(local.test.com页面是由test.com页面中a标签打开),在控制台查看window.opener 这是浏览器同源策略的限制,opener对象会查看到浏览上线文组js对象 image.png -- 我们切换到other.com页面(other.com页面是由test.com页面中a标签打开),在控制台查看window.opener window.opener.document操作父页面dom和js对象 image.png -- 我们切换到local.test.com页面(local.test.com页面是在新标签页中打开),在控制台查看window.opener 操作父页面的dom 同一站点具有同一浏览上下文组的页面之间:子页面不可以用window.opener操作父页面的dom 不同站点具有同一浏览上下文组的页面之间:window.opener无法查看父业面dom
看一下新打开页面的源代码:
<script>
if (window.opener) {
opener.location = 'https://mathiasbynens.github.io window.opener was null; mischief not managed!' 举个例子:
假设在淘宝网上有一个 B网站链接没有带 noopener,当你打开了 B 网站的时候,B 检测到你没有添加 window.opener 的时候,我就把你网站重定向到一个高仿的淘宝网站。
当链接使用 target="_blank" 打开新页面时,新页面可以使用以下语句控制父页面: if (window.opener) { window.opener.location="https referrer="+document.referrer; } 复制代码 链接加上 rel="noopener" 后,则新页面被限制访问 window.opener。 noreferrer 与 noopener 类似,设置了 rel="noreferrer" 后,链接的新页面被限制访问 window.opener。
指示浏览器打开目标文档而不授予目标文档打开源文档的访问权限,打开添加了 rel=“noopener” 的链接,window.opener 会为 null。 当打开不受信任的链接时,这个属性特别有用,可以确保目标文档无法通过Window.opener属性来篡改源文档,同时仍提供 Referer HTTP标头(除非同时使用noreferrer)。
IE if(history.length > 0){ window.history.go( -1 ); }else{ window.opener window.history.length > 1){ window.history.go( -1 ); }else{ window.opener
本文介绍以下几种常见的 web 安全问题及解决方法: 同源策略 XSS CSRF SQL注入 点击劫持 window.opener 安全问题 文件上传漏洞 同源策略 如果两个 URL 的协议、域名和端口都相同 window.opener 安全问题 window.opener 表示打开当前窗体页面的的父窗体的是谁。 例如,在 A 页面中,通过一个带有 target="_blank" 的 a 标签打开了一个新的页面 B,那么在 B 页面里,window.opener 的值为 A 页面的 window 对象。 href="https://xxxx" rel="noopener noreferrer"> 外链 rel=noopener 规定禁止新页面传递源页面的地址,通过设置了此属性的链接打开的页面,其 window.opener
# window.open & window.opener 在使用 window.open (opens new window) 打开新窗口时,会返回新窗口对象的引用 WindowObjectReference 被打开页面可以通过 window.opener (opens new window),获取父窗口的引用。 = `[recive] ${data.msg}`; console.log(`[Window] recive message `, text); // 避免向上回传 if (window.opener let childWins = []; document.getElementById("btn-send-msg").addEventListener("click", () => { if (window.opener = `[recive] ${data.msg}`; console.log(`[Window] recive message `, text); // 避免向上回传 if (window.opener
window.opener=null; window.open('','_self'); window.close(); 经过测试是有效的。 END!!
function printweb(){ windows.print(); closeWindow(); } function closeWindow() { setTimeout("window.opener
点击关闭当前页面 javascript:window.opener=null;window.open('','_self');window.close(); tips: 本文由wp2Blog导入,原文链接