记录一次strict-origin-when-cross-origin的错误

本文介绍了由于http与https协议差异引发的strict-origin-when-cross-origin错误,讨论了Referer-Policy的作用,用于限制Referer头部信息的发送,以保护用户隐私。Chrome浏览器计划更改默认策略,从no-referrer-when-downgrade过渡到strict-origin-when-cross-origin,以提供更强的隐私保护。

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

  1. 用了异步的情况下,是因为http协议的问题。
    我们平台用的是http,直接输入域名,默认是https导致的错误。
    谷歌的90之后版本,默认会带https

错误复现:
输入xxx.com -----> 90版本的chrome: https://xxx.com
报: strict-origin-when-cross-origin
在这里插入图片描述

Referer-Policy

Referer 请求头可能暴露用户的浏览历史,涉及到用户的隐私问题。所以 HTTP 提供了 Referrer-Policy 标头,其用来监管和限制哪些访问来源信息会在 Referer 中发送(应该被包含在生成的请求当中)
在这里插入图片描述

  • no-referrer

整个 Referer 首部会被移除。访问来源信息不随着请求一起发送。

  • no-referrer-when-downgrade (默认值)

在同等安全级别的情况下,引用页面的地址会被发送(HTTPS->HTTPS),但是在降级的情况下不会被发送 (HTTPS->HTTP)。

  • origin

在任何情况下,仅发送文件的源作为引

### strict-origin-when-cross-origin 的定义与用法 `strict-origin-when-cross-origin` 是一种 Referrer Policy,用于控制浏览器在发起请求时如何设置 `Referer` 头部。它的主要目的是在保护用户隐私的同时,确保跨域请求的安全性[^4]。 #### 定义 当 `strict-origin-when-cross-origin` 被设置时,浏览器的行为如下: - 对于同源请求(same-origin),完整的 URL(包括路径和查询参数)会被发送作为 `Referer`。 - 对于跨域请求(cross-origin),仅发送源信息(origin),即协议、主机名和端口号,而不包含路径和查询参数。 - 如果请求是通过不安全的连接(如 HTTP)发起到安全的连接(如 HTTPS),则不会发送 `Referer`。 这种策略旨在平衡隐私保护和功能需求,在减少敏感信息泄露的同时,允许服务器获取足够的上下文来处理请求。 #### 用法 在 HTML 中,可以通过 `<meta>` 标签或 HTTP 响应头来设置 Referrer Policy。 1. **使用 `<meta>` 标签** 在 HTML 文件中添加以下代码: ```html <meta name="referrer" content="strict-origin-when-cross-origin"> ``` 2. **使用 HTTP 响应头** 在服务器配置中添加以下响应头: ``` Referrer-Policy: strict-origin-when-cross-origin ``` #### 示例 假设有一个页面位于 `https://example.com/page`,它发起以下请求: | 请求类型 | 目标地址 | 发送的 Referer | |------------------|--------------------------|------------------------------------| | 同源 GET 请求 | `https://example.com/api` | `https://example.com/page?query=1` | | 跨域 GET 请求 | `https://thirdparty.com` | `https://example.com` | | 不安全的跨域请求 | `http://insecure.com` | (无) | #### 注意事项 - 此策略适用于所有类型的资源请求,包括图片、脚本、样式表等。 - 开发者需要根据实际需求选择合适的 Referrer Policy,以在用户体验和隐私保护之间找到平衡。 ```python # 示例:检查 Referrer Policy 的设置 import requests url = "https://example.com" headers = {"Referrer-Policy": "strict-origin-when-cross-origin"} response = requests.get(url, headers=headers) print(response.headers.get("Referer")) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值