Http的referer字段

一、基础定义

RefererHTTP 请求头 中的一个字段,作用是告诉服务器:当前这个请求,是从哪个网页 / URL 发起的

关键坑点:拼写错误

  • 正确英文单词:Referrer(两个 r)
  • HTTP 标准里:Referer(一个 r)这是历史拼写错误,永久无法修改,所有协议、代码、报文里都必须写一个 r。

二、核心规则:请求从哪来,Referer 就是谁

一句话铁律当前请求在哪个页面执行,Referer 就填哪个页面的 URL,和请求访问的目标地址无关。

你的经典场景

  • 页面所在网站:网站 Bhttps://b.com/index.html

  • 页面里嵌入请求:访问 网站 A 的资源(https://a.com/script.js

  • 最终请求头: http

    复制代码
    Referer: https://b.com/index.html

结论:Referer 只看「发起请求的页面」,不看「请求访问的目标」


三、什么时候会带 Referer?(浏览器自动添加)

只要请求是从网页里主动触发的,浏览器就会自动带上 Referer:

  1. 点击页面链接跳转
  2. 加载 <script> <img> <link> 标签资源
  3. AJAX / Fetch 接口请求
  4. 表单提交

四、什么时候没有 Referer?

  1. 直接在地址栏输入 URL 访问
  2. 书签 / 收藏夹打开页面
  3. 从 HTTPS 网站 → 跳转到 HTTP 网站(安全降级,浏览器自动删除)
  4. 浏览器隐私模式 / 插件屏蔽
  5. 服务器设置了 Referrer-Policy 禁止发送
  6. 第三方工具、爬虫、代码手动发请求(可不带 / 伪造)

五、Referer 三大核心作用(必考)

1. 流量统计(网站分析)

统计网站流量来源:

  • 从百度 / 谷歌搜索来的
  • 从其他网站跳转来的
  • 直接输入地址来的工具:百度统计、Google Analytics 全靠 Referer 分析来源。

2. 防盗链(Anti-hotlinking)------ 最常用、最重要

防止其他网站白嫖你的服务器资源(图片、JS、视频、音频)。

  • 正常:自己网站(A)请求自己资源 → Referer=A → 允许
  • 盗链:别人网站(B)嵌入你的资源 → Referer=B → 拒绝(403 Forbidden)

这就是你在 B 网站嵌 A 的 JS 会失效的根本原因。

3. 安全防护:CSRF 攻击防御

校验请求来源是否为本站页面,防止跨站伪造请求攻击。例:支付接口只允许 Referer=自己网站 的请求。


六、Referrer-Policy(控制 Referer 发送规则)

用来保护隐私,避免 Referer 泄露页面路径 / 敏感参数,常用策略:

  1. no-referrer:完全不发送 Referer
  2. origin :只发域名(https://b.com),不发完整路径
  3. same-origin:同域发完整 URL,跨域不发
  4. strict-origin-when-cross-origin (默认推荐):
    • 同域:完整 URL
    • 跨域:只发域名
    • HTTPS→HTTP:不发

设置方式:

html

预览

复制代码
<meta name="referrer" content="strict-origin-when-cross-origin">

七、Referer 重要弱点

  1. 可被伪造爬虫、代码、抓包工具可以随意修改 Referer,冒充合法来源。
  2. 可被屏蔽浏览器、插件、隐私模式可直接删除 Referer。

→ 结论:Referer 只能做基础校验,不能做绝对安全校验

相关推荐
梦想的旅途25 小时前
企业微信Webhook:自动回复为什么会连发
网络·安全·企业微信
SLD_Allen6 小时前
字节跳动飞连(Feilian)AI智能体零信任安全治理深度技术研究报告
网络·人工智能·安全·智能体安全
深圳市宝华视联10 小时前
Python 读取 IP 视频流简单 Demo
python·嵌入式硬件·opencv·网络协议·tcp/ip·实时音视频·嵌入式实时数据库
Raas10011 小时前
企业AI网关哪个好?MAI Gateway(魔芋企业级AI网关)入选2026年企业AI网关推荐清单
网络·人工智能·gateway·企业·ai网关·mai gateway
芯盾时代11 小时前
《金融业网络安全管理办法(征求意见稿)》全条款深度拆解(一)
网络·安全·web安全
深蓝海拓11 小时前
基于QtPy (PySide6) 的PLC-HMI工程实战记录(五)为当前动作画面的信号连接变量
网络·笔记·python·学习·pyqt
啦啦啦啦啦zzzz11 小时前
时间轮定时器
linux·服务器·网络·c++·定时器
ITyunwei098711 小时前
从 ITIL 视角量化-第三集:工单系统如何成为 ITSM 治理抓手?架构+量化
运维·网络·企业微信
DLYSB_11 小时前
让 PLC“开口说话”:基于 Modbus TCP 的声光语音告警设计与 Python 调试
python·网络协议·tcp/ip·报警灯
半桶水专家12 小时前
MQTT协议使用手册
网络