a标签中target属性为“_blank”时存在安全问题

今天看到一个比较有意思的洞,虽然不够严重,但是却普遍存在各大src中

熟悉js的朋友都应该知道当我们在调用window下的open方法创建一个新窗口的同时,我们可以获得一个创建窗口的opener句柄,但你也许没注意到,通过target="_blank"点开的窗口活着标签页,子窗口也能捕获opener句柄,通过这个句柄,子窗口可以访问到父窗口的一些属性,虽然很有限,但是我们却可以修改父窗口的页面地址,让父窗口显示指定的页面(引用:https://blog.csdn.net/chinashanzhang/article/details/88537581)

复现下

准备a页面:

里面仅有一个a标签,点击后会跳转到b.html(实际场景中b.html一般是放在攻击者服务器中),内容如下:

这样当用户点击a.html中的链接后,会打开一个新的页面b.html,而马上a.html将会跳转到http://www.baidu.com(实际场景中一般是钓鱼网站)

修复方法:

在开发中,我们以后在写a标签的时候尽量都在target="_blank"后面添加一句 rel="noopener noreferrer"。

原文地址:https://www.cnblogs.com/jinqi520/p/11742525.html

时间: 2024-10-10 15:53:20

a标签中target属性为“_blank”时存在安全问题的相关文章

HTML <a> 标签的 target 属性

HTML <a> 标签的 target 属性 HTML <a> 标签 定义和用法 <a> 标签的 target 属性规定在何处打开链接文档. 如果在一个 <a> 标签内包含一个 target 属性,浏览器将会载入和显示用这个标签的 href 属性命名的.名称与这个目标吻合的框架或者窗口中的文档.如果这个指定名称或 id 的框架或者窗口不存在,浏览器将打开一个新的窗口,给这个窗口一个指定的标记,然后将新的文档载入那个窗口.从此以后,超链接文档就可以指向这个新的

a标签的target属性

<a> 标签的 target 属性规定在何处打开链接文档. 如果在一个 <a> 标签内包含一个 target 属性,浏览器将会载入和显示用这个标签的 href 属性命名的.名称与这个目标吻合的框架或者窗口中的文档.如果这个指定名称或 id 的框架或者窗口不存在,浏览器将打开一个新的窗口,给这个窗口一个指定的标记,然后将新的文档载入那个窗口.从此以后,超链接文档就可以指向这个新的窗口. _blank 浏览器总在一个新打开.未命名的窗口中载入目标文档. _self 这个目标的值对所有没

浅析网页meta标签中X-UA-Compatible属性的使用

今天有一个做开发的朋友突然问你知道很多网站上面加入的X-UA-Compatible属性的意义么?其实这个在以前还专门花了一点时间来验证我自己的想法,结果也确实如自己所预想的那样,八九不离十,当然有一点点的偏差.我做的项目中也并不是每个项目中都使用该属性.那么我们首先来看看几个知名站点,他们也使用了这个 上面时淘宝的,下面是百度的. 都可以发现在head中又一个meta,里面有一个X-UA-Compatible的属性,而且确实非常多的网站中在使用.当然也有很多网站是在开发的时候不管三七二十一给加上

img标签中alt属性与title属性

alt属性 1.alt属性是考虑到不支持图像显示或者图像显示被关闭的浏览器的用户,以及视觉障碍的用户和使用屏幕阅读器的用户.当图片不显示的时候,图片的替换文字.2.alt属性值得长度必须少于100个英文字符3.alt属性是img标签的必须属性,如果没有特别意义的图片,可以写4.alt属性是搜索引擎判断图片与文字是否相关的重要依据,alt属性添加到img主要的目的才是为了SEO title属性 1.title属性并不是必须的.2.title属性规定元素的额外信息,有视觉效果,当鼠标放到文字或是图片

applicationContext.xml文件中&lt;bean&gt;标签中property属性用法说明

<bean name="useraaa" class="com.maple.bean.User"> <property name="name"> <value>小强</value> </property> <property name="age"> <value>26</value> </property> <pr

href标签中target的几个属性值

没有指定<a>的target属性值时,默认是"_blank,可以参考以下代码的设置来控制<a href="#" target="_blank">链接</a> target的值target="_blank":在新窗口中浏览新的页面. target="_self":在同一个窗口打开新的页面. target="_parent":在父窗口中打开新的页面.(页面中使用框架

HTML &lt;base&gt; 标签的 target 属性 —— &lt;base target=&quot;_blank&quot; /&gt;

为页面上所有链接规定默认目标: <head> <base target="_blank" /> </head> <body> <a href="http://www.w3school.com.cn">W3School</a> </body> 定义和用法 target 属性规定在何处打开页面上的所有链接. 语法 <base target="value">

关于a标签的target属性

超级链接a的target属性已经是不被新规范支持了,其值有四个保留字: 1._blank      <a href="document.html" target="_blank">my document</a> 浏览器会另开一个新窗口显示document.html文档   2._parent     <a href="document.html" target="_parent">my do

关于a标签的target属性的重要说明

我发现如果使用a元素的target属性时,会发现,有的网站无法使用这个属性打开,也就是说,可能是设置了,我估计别的网站可以被打开,比如百度. 下次要记下来!