位置: IT常识 - 正文

谷歌新版本跨域错误深度剖析与解决:request client is not a secure context and the resource is in more-private address(谷歌浏览器跨域解决方案)

编辑:rootadmin
谷歌新版本跨域错误深度剖析与解决:request client is not a secure context and the resource is in more-private address

推荐整理分享谷歌新版本跨域错误深度剖析与解决:request client is not a secure context and the resource is in more-private address(谷歌浏览器跨域解决方案),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:2021年版本chrome跨域问题,谷歌新版本跨域怎么关闭,谷歌跨域插件cors,谷歌新版本跨域怎么打开,谷歌新版本跨域怎么设置,谷歌新版本跨域怎么设置,谷歌新版本跨域怎么关闭,谷歌新版本跨域怎么关闭,内容如对您有帮助,希望把文章链接给更多的朋友!

快速解决:

====================================================== 最近在测试http服务时,谷歌浏览器报了以下错误

“The request client is not a secure context and the resource is in more-private address space ‘local’”.

从报错信息来看,“不安全的请求方请求了更私有的本地资源” 对于该错误,其实已经在几个月前就已经遇到过,当时对于此的解决方式是修改谷歌浏览器的设置以关闭该检查。 如今,这个错误又一次出现,并且当初修改设置的方式已经不再可行,所以需要寻找其他方法。 这篇博文将分析该错误的原因与相关解决方案。

原因:谷歌浏览器的更新

Chrome安全更新:

从 Chrome 94 开始阻止来自不安全公共网站的私有网络请求。 在 Chrome 98 中。 ●Chrome会在私有网络子资源请求之前发送预检请求。 ● 预检失败只在DevTools中显示警告,不影响私人网络请求。 ● Chrome收集兼容性数据,并向受影响最大的网站伸出援手。 ● Google 预计这将与现有网站广泛兼容。 最早在Chrome 101中全面部署

可以看到,从94版本开始,谷歌针对不安全网站访问私有网络进行了更新,阻止这种访问更私有资源的请求。同时,在进行私有网络资源请求前,还会先发送OPTIONS预检请求。 那么谷歌浏览器的这个更新,是基于什么呢?PNA(Private Network Access) 规范。对于不满足PNA的请求,谷歌浏览器会提示跨域错误

专用网络访问

这里发一下专用网络访问草案的网址:

https://wicg.github.io/private-network-access/#intro

读了文档,大致了解到:PNA是对“公网”访问“私网”进行限制,以提高安全性,防止一些攻击。 文档中对于混合内容、Websocket等各个形式下的措施都有说明。

谷歌新版本跨域错误深度剖析与解决:request client is not a secure context and the resource is in more-private address(谷歌浏览器跨域解决方案)

每个 IP 地址都属于一个 IP 地址空间,该空间可以是一个 三个不同的值: 本地:包含本地 仅限主机。换句话说,每个地址的目标都不同 装置。 私有:包含 仅在当前网络中有意义的地址。在其他 单词,其目标因网络位置而异的地址。 公共:包含所有 其他地址。换句话说,目标相同的地址 IP 网络上的全球所有设备。 为方便起见,我们还定义了以下术语: 本地地址是 IP 地址空间为本地的 IP 地址。 专用地址是 IP 地址空间为私有的 IP 地址。 公共地址是 IP 地址空间为公共的 IP 地址。

文档中,对ip分了三个等级:公共的->私有的->本地的 公共性高的在访问低的时,都属于PNA的内容。以下形式都属于访问“更私有”的ip: 公共ip访问私有ip或者本地ip。 私有ip访问本地ip。

从这可以了解到,非安全的公共上下文请求专用地址的资源,会有安全问题。http网站请求本地服务,对浏览器来说就是不安全的公网访问本地的资源,所以会被拦截。 谷歌98版本之后,网站对私有服务发出请求前,浏览器都会自动发出一个“预检请求”,如果服务不认识预检请求,就不会正确返回,浏览器便会拦截所有预检请求不通过的请求。同时报跨域的错误。“preflight fail”。对于预检请求通过的请求,将能正常发送出去。 如果有遇到预检问题的小伙伴,需要服务端来进行支持。 即服务端对OPTION请求进行返回,同时添加“Access-Control-Allow-Private-Network: true”返回头。

解决方案升级https

最好的解决方式当然是升级“安全的上下文”。同时对于https的升级,还有以下几种情况: 1.http网站访问私有ip服务端,需要客户端和服务端都升级为https协议。 2.http网站访问本地,即http://localhost,服务器可以配置TLS升级https,但是如果是本地服务,难道每个电脑都要单独配置个https服务器吗?并不,这种情况只需要升级网站为https即可。

PNA中,对于https网站发送http请求这种混合内容有单独的描述: 但是需要注意,这里有一个问题:谷歌浏览器的升级,是支持https中请求htttp://localhost这种混合内容的请求的。而对于其他没有使用该政策的浏览器,https中发出http这种混合内容的请求会被禁止发送。所以如果针对谷歌浏览器的这种应用场景进行了升级,那么其他不支持的浏览器在使用时会出现问题。

同时由于该混合内容的支持,其实第一个应用场景也可以是在https网站和私有ip服务端之间增加一个本地服务,通过https请求本地服务,再由本地服务转发到私有ip服务器上来解决,不过这样的话需要在每个使用的机器上都安装一个本地服务。

禁用设置

对于谷歌浏览器版本在94~101之间的,可以通过修改浏览器设置来使得http网站发出的对私有资源的请求可以成功发送。 设置方式:

在浏览器输入:chrome://flags/#block-insecure-private-network-requests 将Block insecure private network requests.项的Default改为Disabled,重启浏览器即可 实际测试中,我将谷歌版本更新到最新版本108.0.5359.95版本,此版本该设置已经弃用 Edge版本为107.0.1418.62 仍然有该设置

更新: Edge版本108.0.1462.42 此项设置已被关闭

所以可能此项设置直到107版本依然可以使用。

2023.01.11 更新: 突然发现不是该项设置被关闭了,而是有的版本直接输入或者第一次输入chrome://flags/#block-insecure-private-network-requests找不到。 需要先在浏览器地址栏输入:chrome://flags进入flags页面 然后在Search中输入Block insecure private network requests 这样就能设置该选项了

更换浏览器

除了上面的方法,也可以更换非谷歌内核的浏览器,比如IE11、火狐浏览器、QQ浏览器等。

其他方法:

除了以上方法,在Chrome108中还可以如此设置: 修改注册表:计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome 新增一个字符串值,InsecurePrivateNetworkRequestsAllowed 值为1

PS:此项设置也用于禁用preflight预检请求 也有另一个flag可用于设置预检请求是否发送 以及: 设置chrome://flags/#unsafely-treat-insecure-origin-as-secure,改为enable,把不安全来源视为安全。 设置ip,以逗号分隔http://example.com,http://要访问本地的页面,并重启chrome。

PS:此项设置后,不会阻止设置的http页面,但是会照常发送preflight预检请求,所以后端服务需要处理好预检请求的回复。对OPTIONS请求给予允许的回包

本文链接地址:https://www.jiuchutong.com/zhishi/297515.html 转载请保留说明!

上一篇:JavaScript 30 JavaScript 日期格式

下一篇:小满nestjs(第二十七章 nestjs typeOrm关系)(小满内容)

  • 抖音转发给朋友的顺序怎么删除(抖音转发给朋友的顺序是怎么来的)

    抖音转发给朋友的顺序怎么删除(抖音转发给朋友的顺序是怎么来的)

  • vivox50的屏幕是曲面屏吗(vivox50的屏幕是多大的)

    vivox50的屏幕是曲面屏吗(vivox50的屏幕是多大的)

  • 三星手机充电显示有水(三星手机充电显示有水滴标志)

    三星手机充电显示有水(三星手机充电显示有水滴标志)

  • 黑鲨2pro屏幕刷新率(黑鲨2pro屏幕刷新率在哪里改)

    黑鲨2pro屏幕刷新率(黑鲨2pro屏幕刷新率在哪里改)

  • 微信健康码如何取消(微信健康码如何添加同行人)

    微信健康码如何取消(微信健康码如何添加同行人)

  • 钉钉会议对方说话听不到声音(钉钉会议对方说话没声音)

    钉钉会议对方说话听不到声音(钉钉会议对方说话没声音)

  • 手机电没充满拔掉对手机有伤害吗(手机电没充满拔掉)

    手机电没充满拔掉对手机有伤害吗(手机电没充满拔掉)

  • 接收短信要钱吗(接收短信要钱吗?)

    接收短信要钱吗(接收短信要钱吗?)

  • word excel属于什么软件(wordexcel属于什么软件图片)

    word excel属于什么软件(wordexcel属于什么软件图片)

  • 三星s系列和a系列区别(三星s系列和a系列的区别)

    三星s系列和a系列区别(三星s系列和a系列的区别)

  • 总闪退怎么回事(苹果总闪退怎么回事)

    总闪退怎么回事(苹果总闪退怎么回事)

  • 什么app下载的视频是mp4(什么app下载视频没有水印)

    什么app下载的视频是mp4(什么app下载视频没有水印)

  • 制冷季节耗电量是什么意思(制冷季节耗电量怎么算多少度电)

    制冷季节耗电量是什么意思(制冷季节耗电量怎么算多少度电)

  • iphone11几个小时充满(iphone11多长时间关机一次)

    iphone11几个小时充满(iphone11多长时间关机一次)

  • 为什么微信公众号图片打不开(为什么微信公众号标题显示的不一样)

    为什么微信公众号图片打不开(为什么微信公众号标题显示的不一样)

  • 手机u盘不足怎么清理(手机u盘不足怎么办)

    手机u盘不足怎么清理(手机u盘不足怎么办)

  • 华为mate30可以5g吗(华为MATE30可以反向充电吗)

    华为mate30可以5g吗(华为MATE30可以反向充电吗)

  • 淘宝怎么开通亲情号(淘宝怎么开通亲密度付)

    淘宝怎么开通亲情号(淘宝怎么开通亲密度付)

  • 苹果x进水可以充电吗(苹果x进水可以修好吗)

    苹果x进水可以充电吗(苹果x进水可以修好吗)

  • 相机入门基础知识(相机入门知识从零开始)

    相机入门基础知识(相机入门知识从零开始)

  • 素士和小米是什么关系(素士小米是什么关系)

    素士和小米是什么关系(素士小米是什么关系)

  • 华为机器人怎么召唤(华为机器人怎么关闭)

    华为机器人怎么召唤(华为机器人怎么关闭)

  • 荣耀20有没有耳机接口(荣耀20有没有耳机弹窗功能)

    荣耀20有没有耳机接口(荣耀20有没有耳机弹窗功能)

  • 花椒直播如何投屏(花椒直播如何直播电视剧)

    花椒直播如何投屏(花椒直播如何直播电视剧)

  • 电脑打不开软件没反应(电脑打不开软件没反应怎么回事)

    电脑打不开软件没反应(电脑打不开软件没反应怎么回事)

  • 爱奇艺可以播放本地视频吗(爱奇艺可以播放什么格式的视频)

    爱奇艺可以播放本地视频吗(爱奇艺可以播放什么格式的视频)

  • 工商年报认缴时间填错了
  • 劳动收入与报酬的具体形式有哪些
  • 个人独资企业法人可以变更吗?
  • 经营许可证要交税吗
  • 房地产企业成本包括哪些
  • 企业股东分红所得税税率表
  • 企业股权转让留存收益可以扣除吗
  • 员工报销增值税
  • 事业专款支出形成的固定资产如何入账?
  • 财务费用手续费有哪些
  • 代驾服务费属于什么费用
  • 公司购电缆用于生产如何记账?
  • 纳税人必知的十七项增值税开票指南
  • 公务用车用油
  • 废旧物品回收是做什么的
  • 回盘的模板
  • 企业停产没有收入,费用可以计入长期待摊费用吗
  • 购置土地税款怎么入账?
  • win11怎么调整任务栏位置
  • 租赁合同维修义务谁承担
  • 一般公司的hr会查案底吗
  • 网络命令netstat
  • bios是什么请简要介绍一下
  • bash是什么命令
  • uniapp接入支付宝
  • 在laravel中,界面文件应该放在以下哪个路径下
  • 实例讲解php设计软件
  • 安装人员食宿费谁承担
  • 买入返售金融资产和卖出回购金融资产
  • 开展党建系列活动
  • 企业所得税申报表A类
  • dematel模型有什么缺点
  • web前端面试题目
  • Vue3+TypeScript+Vite如何使用require动态引入类似于图片等静态资源
  • 固定资产发票税率多少
  • 政府无偿划转股权 要做可行性研究
  • 进口设备增值税计算
  • 企业支付宝提现到对公账户手续费
  • go语言ui
  • mysql的字符串
  • 小规模纳税人进项发票怎么做账
  • 已经抵扣的进项税额转出会计分录
  • 固定资产的会计政策有哪些
  • 企业所得税成本费用一定要发票的吗
  • 会议费可以开餐费吗
  • 预缴税款计算表填0.01行吗
  • 勾选了不抵扣还能抵扣
  • 公司开一般户和基本户开哪个好
  • 员工工资需要交税吗
  • 公司水电费分摊怎么算
  • 政府代建工程
  • 公司送的车还能要回去吗
  • 两家公司的钱混着用怎么做账
  • 养老保险产生的利息怎么来的
  • 存货有哪几个科目
  • 超市账目
  • 挂靠收入如何做账处理?
  • 记账凭证的基本内容包括制证,审核,记账,会计主管
  • mysql binlog redo
  • 更新最新版win11,任务栏不见了
  • 微软更新kb4474419
  • ubuntu16.04终端在哪
  • WinXP创建一键静音快捷键(在喇叭消失的情况下实用)
  • winxp注销快捷键
  • win10在更新界面怎么办
  • win7笔记本触摸板怎么开启
  • linux装完显卡驱动分辨率低
  • opengl详解
  • javascript全选反选
  • python里的set
  • shell win10
  • python 编程技巧
  • jquery的动画效果
  • 理解和运用的重要性要站在哪个的视觉去判断
  • javascript的
  • before和after在句子中怎么翻译
  • 进项发票认证了怎么冲红
  • 国家税务总局全国增值税发票查验平台
  • 申请小规模纳税人公司需要多久
  • 耗电异常优化是什么意思微信
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设