insecurePrivateNetwork跨域问题分析

429 阅读1分钟

前提

近来在项目对接问题中,碰到了个神奇的跨域问题。同一个服务和接口,在部分设备上调用正常,在另一些设备上调用跨域,遂排查。

排查流程

解决问题

首先锁定关键词insecurePrivateNetwork

image.png

网上其实关于这个错误的描述很多,初步定位是从公网向私网(局域网)发起访问导致的

解决方案就是将chrome的 chrome://flags/#block-insecure-private-network-requests 配置从default改成disabled就行。

image.png

修改后发现问题确实已经解决。

思考

虽然问题解决了,但是另一个问题浮出水面。之前那些能正常访问的设备,其配置值也是default, 这是什么情况呢。

后续参考 chromeenterprise.google/policies/#I…

得知:

  1. 该策略控制是否允许网站以不安全的方式向更多专用网络端点发出请求。

  2. 该策略阻止网络向更私有的网络发起请求(1. IP地址是localhost,而请求服务ip不是。2 IP地址是私有的,请求地址是公网的

  3. 除了浏览器配置,还可以通过修改注册表控制该协议:

    1. true表示允许网站以不安全的方式向任何网络端点发出请求。
    2. false表示在确定网站是否可以向网络端点发出请求时使用默认行为。 image.png

查看浏览器配置为default但是不跨域的设备注册表:

image.png

确实发现该配置被设置成true,问题解决。