禁用 Web 安全性的私有网络访问问题:请求没有目标 IP 地址空间,但资源位于本地地址空间中

问题描述 投票:0回答:3

我们在公共站点上有一个测试环境。我们在 chrome 上使用 --disable-web-security 标志,让测试人员在手动测试阶段绕过公共服务调用的 CORS 错误。而且我们在代理机器上也有本地主机请求。然而今天,随着 Chrome 98 的更新,我们开始努力应对针对 localhost 的网络请求。

我们收到的错误是来自公共站点的本地主机请求:

Access to XMLHttpRequest at 'https://localhost:3030/static/first.qjson' from origin 'https://....com' has been blocked by CORS policy: Request had no target IP address space, yet the resource is in address space `local`.

本地主机上的站点配置为返回 Access-Control-Allow-* CORS 标头,包括“Access-Control-Allow-Private-Network: true”。

而且我也没有看到任何预检请求。只有一个 GET 请求出现 CORS 错误。

我们怀疑这可能是您通过 --disable-web-security 禁用网络安全性时引起的副作用。它可能会阻止获取目标 IP 地址空间。我们的假设基于 https://wicg.github.io/private-network-access/

上的 CORS 预检部分

3.1.2。 CORS 飞行前
应调整 HTTP 获取算法,以确保为从安全上下文发起的所有专用网络请求触发预检。

这里的主要问题还是在 HTTP 网络获取中获得连接之前,响应的 IP 地址空间是未知的,该连接位于 CORS 预检获取之下。

那么有人知道使用 --disable-web-security 标志进行专用网络访问的任何解决方法吗? 或者也许我们错过了一些东西。感谢您的帮助。

javascript google-chrome cors private-network-access
3个回答
16
投票

以下步骤可以帮助解决 chrome 98 中的问题,对于其他浏览器(例如 Edge),您需要像 chrome 那样执行类似的操作。

对于MAC

  • 请求使用 chrome 版本 98。您需要按照以下步骤操作:- 在终端上运行此命令

    defaults write com.google.Chrome InsecurePrivateNetworkRequestsAllowed -bool true

  • 重新启动浏览器,不起作用然后重新启动机器

对于Windows

  • 运行“regedit”打开 Windows 注册表(如果出现权限问题,则使用管理命令提示符运行该命令)
  • 转到计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome
  • 使用“InsecurePrivateNetworkRequestsAllowed”名称创建新的 DWORD 值
  • 将值更改为“1”
  • 重新启动浏览器

3
投票

Linux

对于 Linux 用户,您必须在此路径中创建一个策略文件:

mkdir -p /etc/chromium/policies/managed

# for chrome you should change the path to this
# /etc/opt/chrome/policies/managed

然后为策略创建一个新的 json 文件:

cd /etc/chromium/policies/managed
touch dev_policy.json

并将此内容放入其中:

{
"InsecurePrivateNetworkRequestsAllowed": 1
}

对于镀铬:

{
"InsecurePrivateNetworkRequestsAllowed": true
}

就是这样,下次您在计算机上启动 chrome 时,它将加载此新策略。

附注您可以在此处检查策略是否已正确加载:chrome://policy/


0
投票

根据WICG文档“如何试验专用网络访问”,还有另外两种(更简单的)方法可以做到这一点,

the command-line flag: --enable-features=BlockInsecurePrivateNetworkRequests
the chrome:// flag: chrome://flags/#block-insecure-private-network-requests
© www.soinside.com 2019 - 2024. All rights reserved.