html中<a>标签的安全问题

本文探讨了HTML中<a>标签可能导致的安全问题,当新旧页面在同一域名下时,新页面可以控制旧页面,包括修改其URL。解决办法是设置target属性为"_blank",以隔离页面间的交互,确保用户安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、问题描述
<a href="https://learn-anything.cn" target="_blank"/>

# 上面的写法,会出现下面的警告信息:
warning  Using target="_blank" without rel="noreferrer" is a security risk: see
https://html.spec.whatwg.org/multipage/links.html#link-type-noopener  react/jsx-no-target-blank
2、解决方案
# 增加属性:rel="noreferrer"
<a href="https://learn-anything.cn" target="_blank" rel="noreferrer"/>
3、安全问题说明

使用 target="_blank" 打开新标签页时,新页面的 window.opener 对象指向前一个页面,也就可以控制前一个页面。

  • 当新旧页面在同一个域名下时,在新页面控制台输入 window.opener.alert(1) ,会发现旧页面弹出消息 1
  • 当新旧页面不在同一个域名时,通过 window.opener.location.replace 可以改变旧页面的url。
  • rel="noreferrer" 属性是把 window.opener 对象设置为 null,以防后患。

4、相关链接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值