<a> 标签通常会配合着使用 noopenernoreferrer 及 nofollow 这些属性, 它们的作用及用法如下。

noopener

当给链接加上 target="_blank" 后, 目标网页会在新的标签页中打开, 此时在新打开的页面中可通过 window.opener 获取到源页面的 window 对象, 这就埋下了安全隐患。

具体来说,

  • 你自己的网页 A 有个链接是打开另外一个三方地址 B
  • B 网页通过 window.opener 获取到 A 网页的 window 对象, 进而可以使得 A 页面跳转到一个钓鱼页面 window.opener.location.href ="abc.com", 用户没注意地址发生了跳转, 在该页面输入了用户名密码后则发生信息泄露

为了避免上述问题, 引入了 rel="noopener" 属性, 这样新打开的页面便获取不到来源页面的 window 对象了, 此时 window.opener 的值是 null

所以, 如果要在新标签页中打开三方地址时, 最好配全着 rel="noopener"

noreferrer

与 noopener 类似, 设置了 rel="noreferrer" 后新开页面也无法获取来源页面的 window 以进行攻击, 同时, 新开页面中还无法获取 document.referrer 信息, 该信息包含了来源页面的地址。

通常 noopener 和 noreferrer 会同时设置, rel="noopener noreferrer"

既然后者同时拥有前者限制获取 window.opener 的功能, 为何还要同时设置两者呢。

考虑到兼容性, 因为一些老旧浏览器不支持 noopener

nofollow

搜索引擎对页面的权重计算中包含一项页面引用数 (backlinks), 即如果页面被其他地方链接得多, 那本页面会被搜索引擎判定为优质页面, 在搜索结果中排名会上升。

当设置 rel="nofollow" 则表示告诉搜索引擎, 本次链接不为上述排名作贡献。

一般用于链接内部地址, 或一些不太优质的页面。

最新文章

  1. js中join函数的使用方法(js输出html标签)
  2. PHPExcel设置数据格式的几种方法
  3. JS调用BHO
  4. iOS证书失效
  5. 复合sql
  6. 1.7 逆序数与归并排序[inversion pairs by merge sort]
  7. struct inode 和 struct file
  8. javascript深入理解js闭包[转]
  9. Nginx 1.10.1 版本nginx.conf优化配置及详细注释
  10. Java中char,short,int,long占几个字节和多少位
  11. Edge-assisted Traffic Engineering and applications in the IoT
  12. (84)Wangdao.com第十八天_JavaScript Promise 对象
  13. Linux服务器配置
  14. [ 中危 ] dp意见反馈处存储型XSS
  15. 并发容器——ConcurrentHashMap
  16. JVM:基础
  17. SQLite3数据库
  18. jetbrains产品的一些使用技巧
  19. AEAI DP V3.8.0 升级说明,开源综合应用开发平台
  20. 关于OPC Client 编写

热门文章

  1. 前端vue框架上手记录
  2. AdaptSegeNet 代码分析
  3. 【JavaScript】JS写法随笔(一) Ajax写法
  4. layui相关问题总结
  5. zxb2022习题班16
  6. jmeter性能测试学习1_配置oracl jdbc连接
  7. BubbleSort,冒泡排序,C++非递归和递归实现
  8. 项目:口令保管箱,批处理文件配置.bat
  9. python题mhy
  10. NET Core 部署IIS 碰到得问题解决(内托管模式超时、不允许得请求谓词、直接请求无响应、拒绝服务405)