加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

你不曾察觉的隐患:危险的 target=_blank 与 “opener”

发布时间:2018-09-18 18:05:26 所属栏目:业界 来源:创宇前端
导读:【新品产上线啦】51CTO播客,随时随地,碎片化学习 在网页中使用链接时,如果想要让浏览器自动在新的标签页打开指定的地址,通常的做法就是在 a 标签上添加 target等于_blank 属性。 然而,就是这个属性,为钓鱼攻击者带来了可乘之机。 起源 parent 与 open

这时,就只能请出下面这段原生 JavaScript 来帮忙了。

  1. "use strict";  
  2. function openUrl(url) {  
  3.   var newTab = window.open();  
  4.   newTab.opener = null;  
  5.   newTab.location = url;  
  6. }  

推荐

首先,在网站中的链接上,如果使用了 target="_blank",就要带上 rel="noopener",并且建议带上 rel="noreferrer"。类似于这样:

  1. <a href="https://an.evil.site" target="_blank" rel="noopener noreferrer">进入一个“邪恶”的网站</a> 

当然,在跳转到第三方网站的时候,为了 SEO 权重,还建议带上 rel="nofollow",所以最终类似于这样:

  1. <a href="https://an.evil.site" target="_blank" rel="noopener noreferrer nofollow">进入一个“邪恶”的网站</a> 

性能

最后,再来说说性能问题。

如果网站使用了 <a target="_blank">,那么新打开的标签页的性能将会影响到当前页面。此时如果新打开的页面中执行了一个非常庞大的 JavaScript 脚本,那么原始标签页也会受到影响,会出现卡顿的现象(当然不至于卡死)。

而如果在链接中加入了 noopener,则此时两个标签页将会互不干扰,使得原页面的性能不会受到新页面的影响。

原文链接:https://knownsec-fed.com/2018...

【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读