Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >这次不用再为调试环境的 HTTPS 协议发愁了

这次不用再为调试环境的 HTTPS 协议发愁了

作者头像
ConardLi
发布于 2023-12-14 11:06:39
发布于 2023-12-14 11:06:39
37200
代码可运行
举报
文章被收录于专栏:code秘密花园code秘密花园
运行总次数:0
代码可运行

Chrome 正在计划禁止从非安全网站发起的私有网络请求,目的是保护用户免受针对专用网络上的路由器和其他设备的跨站点请求伪造 (CSRF) 攻击。

私有网络请求是其目标服务器的 IP 地址比获取请求发起者的 IP 地址更私有的请求。例如,从公共网站 ( https://example.com) 到私有网站 (http://router.local) 的请求,或从私有网站到 localhost 的请求。

Chrome 94 版本,开始阻止来自不安全上下文(非 HTTPS 协议)的公共网站的私有网络请求。

详细的策略更新可以看我之前写的这篇文章:Chrome 重大更新,将限制 localhost 访问?

但是这项更新却给广大开发者的本地开发和调试带来了很大的困扰,从私有设备(比如我们自己的本地调试环境)移到 HTTPS 协议还是挺困难的。

所以此项更新开始后,很多测试或者预发环境都开始报错,其实正是因为我们在这些环境中数据不安全的上下文(非 HTTPS 协议),但是却发起了私有网络请求(比如从测试环境发到本地调试服务器的请求)。

正是为了解决这个问题,Chrome 120 版本推出了一项新的权限提示。

首先,我们可以在发起 fetch 请求的 Options 选项中添加 targetAddressSpace ,就可以跳过上面提到的混合内容的检查。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fetch("http://router.localhost/conardli", {
  targetAddressSpace: "private",
});

注意:在混合内容检查中,本身像 http://localhost127.0.0.0/8::1/128 这样的本地 IP 地址被认为是潜在可信的,所以在这些情况下不需要添加 targetAddressSpace 也是可以请求成功的。

根据私有网络访问策略的限制,任何私有网络请求发起之前都会先发起预检请求。

具体可以看我之前写的这篇文章:Chrome 安全策略 - 私有网络控制(CORS-RFC1918)

预检请求会包含一个新的 Request Header : Access-Control-Request-Private-Network: true 。并且相应的响应也必须包含一个 Response HeaderAccess-Control-Allow-Private-Network: true

为了适应新的权限提示,此次更新又引入了两个新的 Response Header,而且是要求必须添加的:

  • Private-Network-Access-Name :一个可读的名称标识(与 ECMAScript 正则表达式 /^[a-z0-9_-.]+$/ 匹配的有效名称字符串,名称的最大长度为 248UTF-8 代码单元。)
  • Private-Network-Access-ID:设备的 MAC 地址(48 位值,以冒号分隔的 6 个十六进制字节表示)

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Private-Network-Access-Name: "ConardLi Computer"
Private-Network-Access-ID: "17:17:17:17:17:0A"

注意:当私有网络权限提示绕过混合内容检查时,即使在预检警告模式下,也会强制执行预检。

可以在下面这个网址查看具体的 Demo 演示:https ://private-network-access-permission-test.glitch.me/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 code秘密花园 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Chrome 重大更新,CORS 增加了两个新的请求头?
能问出这俩问题,一定没好好看我的公众号,其实之前在多篇文章里都提到过相关的策略解读,
ConardLi
2022/02/18
4.6K0
Chrome 重大更新,CORS 增加了两个新的请求头?
​这次可能真要和 HTTP 说再见了
就在 8.16 号,Chromium 官方博客宣布了未来将尝试将所有的网站协议默认导向 HTTPS (就算用户主动使用 HTTP 访问也会如此) ,目前已经在 Chrome 115 版本开启了试验。
ConardLi
2023/09/11
1640
​这次可能真要和 HTTP 说再见了
Chrome 重大更新,将限制 localhost 访问?
Chrome 正在计划禁止从非安全网站发起的专用网络请求,目的是保护用户免受针对专用网络上的路由器和其他设备的跨站点请求伪造 (CSRF) 攻击:
ConardLi
2021/09/08
2.5K0
Chrome 重大更新,将限制 localhost 访问?
Chrome 安全策略 - 私有网络控制(CORS-RFC1918)
Chrome 安全策略又更新啦!这次 Chrome 将会逐步推进私有网络的访问控制,在 Chrome 90 将实施访问控制的第一步,如果你的程序里有从共有网络访问私有网络的需求场景,在 Chrome 90 版本更新后可能会受到影响,希望大家提前感知并做好准备!
ConardLi
2021/04/07
6.1K0
Chrome 安全策略 - 私有网络控制(CORS-RFC1918)
后端工程师需要了解的跨域知识
产品有多端:机构端,局方端 ,家长端等 。每端都有独立的域名,有的是在PC上访问,有的是通过微信公众号来访问,有的是扫码后H5展现。
勇哥java实战
2022/01/14
1K0
后端工程师需要了解的跨域知识
10 种CORS跨域解决方案
这是一个老生常谈的话题,以前我觉得这种基础文章没有什么好写的,最近为了线上问题深入了解底层,确实有点东西,下面汇总成10种方案。
sunsky
2022/09/09
7.2K0
10 种CORS跨域解决方案
HTTP跨域详解和解决方式
那么究竟什么是跨域,跨域又是怎么产生的,以及跨域请求的问题需要怎么解决。我们一起来了解一下这些知识。
仙士可
2019/12/19
4.9K0
HTTP跨域详解和解决方式
在B站看猫片被老板发现?不如按下F12学学HTTP
HTTP 全称超⽂文本传输协议,也就是HyperText Transfer Protocol。 其中我们常见的文本,图片,视频这些东西都可以用超文本进行表示,而我常看的猫片,也属于超文本,所以大家不要再说我偷偷看猫片了,我只是在看超文本。HTTP只是定义了一套传输超文本的规则,只要符合了这一套规则,不管你是用iphone,还是用老爷机,都可以实现猫片的传输。
9号同学
2021/03/03
1.1K0
在B站看猫片被老板发现?不如按下F12学学HTTP
CORS 完全手册之 CORS 详解
在 CORS 完全手册之如何解决CORS 问题?里面我们提到了常见的CORS 错误解法,以及大多数状况下应该要选择的解法:「请后端加上response header」。
coder_koala
2021/04/21
1.9K0
15 张精美动图全面讲解 CORS
前言: 本文翻译自 Lydia Hallie[1] 小姐姐写的 ✋?? CS Visualized: CORS[2],她用了大量的动图去解释 CORS 这个概念,国内还没有人翻译本文,所以我在原文的理
卤代烃
2020/08/07
1.2K0
2022 年前端大事记
去年我总结了 2021 年 JavaScript 大事记 之后,最近好多小伙伴催更我的 2022 年总结,这就来了。
ConardLi
2023/01/09
1.4K0
2022 年前端大事记
Golang——通过实例了解并解决CORS跨域问题
​ 运行在http://localhost:8082端口的前端服务器express和运行在http://localhost:8080端口的后端服务器golang net/http。前端的javaScript代码使用fetch()函数发起一个到http://localhost:8080/api/students的请求。
传说之下的花儿
2023/04/16
2.5K0
Golang——通过实例了解并解决CORS跨域问题
HTTP协议学习
HTTP 于 1990 年问世。那时的 HTTP 并没有作为正式的标准被建立。现在的 HTTP 其实含有 HTTP1.0 之前 版本的意思,因此被称为
ruochen
2021/12/07
1K0
【秒杀】前端网络-CORS
上一节介绍了前端网络的基础用法,已经秒杀了fetch与xhr用法,但是实际在前端发送这些请求的时候,难免会遇到一些莫名其妙的报错,在别人网站正常请求的服务器地址,在你的网站里面就不行了,我用APIfox,postman或者vscode的rest client发送请求就一切正常,这是怎么回事?
Ar-Sr-Na
2024/03/29
3680
【秒杀】前端网络-CORS
六万字 HTTP 必备知识学习,程序员不懂网络怎么行,一篇HTTP入门 不收藏都可惜
作为一名程序员,可能多数人都偏向于后端敲代码,但是关于Web的知识可千万不能忘呀!
呆呆敲代码的小Y
2022/05/10
9300
六万字 HTTP 必备知识学习,程序员不懂网络怎么行,一篇HTTP入门 不收藏都可惜
Google 最新的性能优化方案,LCP 提升30%!
网页的性能,大部分情况下是影响用户使用体验的第一要素,特别是对于很多电商、金融网站,可能几秒的性能提升就意味着更大的转化率和收益。
ConardLi
2022/05/23
1.4K0
Google 最新的性能优化方案,LCP 提升30%!
谷歌Chrome浏览器新功能亮相,可有效抵御黑客攻击
近日,谷歌正在测试一项新功能,以防止恶意公共网站通过用户浏览器攻击内部专用网络上的设备和服务。新版本将能够检测并阻止恶意分子通过网络钓鱼等手段试图控制用户局域网内其他设备的行为。
FB客服
2024/02/26
2630
谷歌Chrome浏览器新功能亮相,可有效抵御黑客攻击
报`Uncaught (in promise) TypeError: NetworkError when attempting to fetch resource.`错误解决办法
使用了promise,但是在使用的过程中报Uncaught (in promise)错误,第一次遇到这种错误,所以在此记录下,方便以后解决问题
天天Lotay
2023/04/16
3.4K0
报`Uncaught (in promise) TypeError: NetworkError when attempting to fetch resource.`错误解决办法
深入了解 CORS
文章介绍了操作系统文件系统崩溃恢复机制,包括概念、日志系统特性,详细讲解了 xv6 文件系统写入文件操作步骤、各步骤功能及崩溃恢复情况,还指出 xv6 存在的问题及后续将介绍 Ext3 文件系统。
写bug的高哈哈
2024/11/12
2090
深入了解 CORS
科普一下 CORS 以及如何节省一次 OPTIONS 请求
“ 相信做前端开发的同学对同源策略都比较熟悉,而如何解决跨域问题基本上也是前端面试必考题之一。 ” CORS标准协议 为了解决跨域资源共享问题,浏览器厂商和标准组织在 HTTP 协议的基础上,提出了 CORS 标准协议。CORS 协议由一组 HTTP Header 构成,用于标识某个资源是否可以被跨域访问。 这里只是简单介绍一下 CORS 标准,更详细的内容可以直接看规范文档:Fetch Standard 当前端使用 XHR 或者 fetch 等其他方法请求一个跨域资源时,如果是非简单请求(后面会解释),
腾讯NEXT学位
2019/07/02
2.6K0
科普一下 CORS 以及如何节省一次 OPTIONS 请求
相关推荐
Chrome 重大更新,CORS 增加了两个新的请求头?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验