优化实战 第 11 期 - 基于 Referer 请求头的优化

912 阅读2分钟

详解Referer

  • Referer是什么

    Referer 是请求头信息里的一个常见字段,它提供了访问来源的信息

    当客户端向服务端发送请求时,都会携带 Referer 头字段,告知服务器该请求的来源,即 触发请求的页面链接

  • Referer存在的条件

    1、点击页面中的超链接

    2、通过 srchref 属性加载静态资源,如图片、视频、脚本、样式等等

    3、通过 getpost 发送请求

  • 获取不到Referer的情况

    1、直接在浏览器中输入 URL 地址

    2、在 HTTPS 应用中使用第三方应用的 HTTP 资源

  • Referer的作用

    1、对应用流量的来源做统计

    2、防止资源被盗链

详解盗链

  • 什么是盗链

    未经第三方授权或同意,就把其资源引用到了自己的应用上,比如图片、视频、文件下载等等,可以通过消耗第三方应用的流量来在自己的应用中使用这些资源

    浏览器在页面呈现的过程中,拉取非当前应用的资源,就称为是盗链

  • 实现盗链

    1、在 HTTPS 应用中使用第三方应用的 HTTP 资源

    2、通过设置 a 标签的 rel 属性

    <a href="视频资源地址" target="_blank" rel="noopener noreferrer">
    

    通过设置 noreferrer 属性禁用请求头部的 Referer 属性,可在新页面中访问防盗链资源

    通过设置 noopener 属性在新打开的页面中不授予对打开它的文档的访问权限,即 window.opener 属性值返回 null,以此来确保无法通过 window.opener 属性来篡改原始文档

注意事项

平常在应用中通过 a 标签链接第三方外部资源时(打开新页面),都应该添加以上属性,以增强应用的安全性

一起学习,加群交流看 沸点