分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

关于html的a标签的target="__blank "的安全漏洞问题

发布时间:2023-09-06 02:16责任编辑:沈小雨关键词:暂无标签

使用场景:最近项目中使用一个a标签的 target="__blank "链接跳转 页面,打开一个新的 pdf文件(或者外部的一个网页),然后在chrome浏览器中快速的滑动的时候,页面偶尔会出现空白现象,这可能是一个浏览器的漏洞,如何解决这个问题,需要对a标记需要target="__blank "的链接中,我们加上rel="nofollow noopener noreferrer" 这个就可以解决这个漏洞了。

比如我现在在本地的页面为 index.html, 然后链接引入了一个外部的页面,比如是http://www.b.com这样的一个链接如下:

// 本地页面<html lang="en"><body> ?<a href="http://www.b.com" target="_blank">http://www.b.com</a></body></html>// b.com下的页面<html lang="en"><body> ?<script type="text/javascript"> ???if (opener) { ?????opener.window.location.href="http://www.danger.com"; ???} ?</script></body></html>

当我们点击网页中的超链接的时候,打开http://www.b.com页面,就会发现我们的网页很有可能被篡改成为其他的网页,比如为 www.danger.com。
并且在外部打开的网页有本网页的全部控制权,比如可以获取本页面的cookie等信息。甚至在跨域的情况下也是生效的。

因此 对于使用了 target="_blank" 并且跳转到外部链接的超链接,加上 rel="noopener noreferrer" 属性即可,此时外部链接获取到的 opener 为 null。

rel="noopener" 可以确保 window.opener 为 null 在 Chrome 49+ 和 Opera 36,而对于旧版本浏览器和火狐浏览器,可以加上 rel="noreferrer" 更进一步禁用 HTTP 的 Referer 头,或者使用 js 打开新页面。如下js代码:

<div id="btn">test</div><script type="text/javascript"> ?const safeOpen = url => { ???var otherWindow = window.open(); ???otherWindow.opener = null; ???otherWindow.location = url; ?} ?document.getElementById(‘btn‘).onclick = function() { ???safeOpen(‘http://wwww.baidu.com‘); ?}</script>

理解 rel="external nofollow noreferrer"

rel = ‘nofollow‘ 的作用是:它是来告诉搜索引擎,不要将该链接计入权重,因为在很多情况下,我们可以将一些不想传递权重的链接进行nofollow处理,比如一些非本站的链接,不想传递权重,但是又需要加在页面中,比如一些 统计代码,备案号链接,供用户查询链接等等这些。

rel = ‘external‘ 的作用是:它告诉搜索引擎,这个链接不是本站链接.

rel = ‘external nofollow‘的作用就是上面两种属性一起的含义了,可以理解为:这个链接非本站链接,不要爬取也不要传递权重。
因此对于SEO角度来讲,可以有效的减少蜘蛛爬行的流失。

rel="nofollow noopener noreferrer" 超链接 target="_blank" 要增加 rel="nofollow noopener noreferrer" 来堵住钓鱼安全漏洞。

如果你在链接上使用 target="_blank"属性,并且不加上rel="noopener"属性,那么你就让用户暴露在一个非常简单的钓鱼攻击之下。

关于html的a标签的target="__blank "的安全漏洞问题

原文地址:https://www.cnblogs.com/tugenhua0707/p/9709424.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved