【问题标题】:"unsafely-treat-insecure-origin-as-secure" flag is not working on Chrome“unsafely-treat-insecure-origin-as-secure”标志在 Chrome 上不起作用
【发布时间】:2017-04-03 10:30:36
【问题描述】:

我在 Chrome 上使用 HTTP 对在我的机器上本地运行的站点使用地理位置。但是,这不起作用,因为我在 HTTP 而不是 HTTPS 上运行。

在控制台上显示:

getCurrentPosition() and watchPosition() no longer work on insecure origins.
To use this feature, you should consider switching your application to a 
secure origin, such as HTTPS. See https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-powerful-features-on-insecure-origins 
for more details.

根据Deprecating Powerful Features on Insecure Origins,它说使用--unsafely-treat-insecure-origin-as-secure="http://example.com" 标志启动chrome。我运行的命令类似于:

chrome.exe --unsafely-treat-insecure-origin-as-secure="http://hello.app"

但是,同样的错误信息仍然出现。

我该如何解决这个问题。

【问题讨论】:

  • 版本 64.0.3282.167(官方版本)(64 位),是我的 chrome 版本,我遇到了同样的问题。
  • 如果需要,请确保指定端口。这就是我的意思。
  • 我知道这是一个老问题。但是,我想让我们分享一下它是如何为我工作的。在进行一些测试时,我需要将 HTTP 视为安全并偶然发现了这个问题。我在铬 v74.0.3729.0 This 上进行了测试,并为我工作。启用标志后,重新启动浏览器。然后在输入字段中,写下您的 HTTP 链接。浏览器将再次要求重新启动,但不会。打开一个新标签并转到您的链接,现在它是安全的。

标签: google-chrome


【解决方案1】:

没有一个解决方案对我有用。

我通过以下步骤实现了这一点。

  1. 在地址栏中输入 chrome://flags/#unsafely-treat-insecure-origin-as-secure
  2. 添加您需要视为安全的来源,如下图所示。

  1. 重新启动 Chrome。

【讨论】:

  • 这对我有用,虽然我必须添加特定的端口,就我而言。另外,我每次都必须设置它,Chrome 仍然抱怨它是一个“不受支持”的标志
  • 这适用于 mac 上的浏览​​器,但是当我在 android 上的 chrome 中单击重新启动时,它永远不会记住列入白名单的 url
  • 如何保存数值?如果我单击链接,则会显示重新启动按钮,但重新启动后输入的值会丢失。
  • @HonsaStunna 你选择了“启用”吗?
  • @Vincent 显然是 you need device root 在 Android 设备上设置此标志。 Google 建议改为设置 port forwarding
【解决方案2】:

您一定错过了一些步骤。试试看这个

  1. 转到文件资源管理器,然后将其粘贴到地址栏 >> C:\Program Files (x86)\Google\Chrome\Application(或者直接转到可以找到 chrome.exe 的位置
  2. 右键单击 chrome.exe > 发送到 > 桌面(创建快捷方式)
  3. 转到您的桌面,然后找到您创建的 chrome 快捷方式。
  4. 将其重命名为 ChromeForTesting(此步骤是可选的)
  5. 右键单击快捷方式,然后单击属性
  6. 在“目标”处,将以下内容粘贴到链接末尾

    --user-data-dir=/tmp/foo --unsafely-treat-insecure-origin-as-secure=http://example.com

所以 Target 看起来应该和这个有点相似

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir=/tmp/foo --unsafely-treat-insecure-origin-as-secure=http://example.com
  1. 点击确定..
  2. 在测试期间关闭所有打开的 google chrome 浏览器。 然后双击 ChromeForTesting 快捷方式(你创建的那个),当出现提示时,点击确定..

编辑:如果上述步骤对您不起作用,您可能正在使用 Chrome V63,请将其更新到上述 V64,因为此标志在 V63 中被弄乱了。

附:如果仍然无法正常工作,请按照这些额外步骤操作

  1. 在驱动器 C 上,创建一个文件夹并将其命名为“ChromeTempFiles”。
  2. 然后在您的--user-data-dir= 中将值更改为“C:\ChromeTempFiles”
  3. 也将这些添加到您的目标中

    --allow-running-insecure-content --reduce-security-for-testing

所以你的目标现在应该是这样的

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir=C:\ChromeTempFiles --unsafely-treat-insecure-origin-as-secure=http://example.com --allow-running-insecure-content --reduce-security-for-testing

【讨论】:

  • 对我不起作用,“--unsafely-treat-insecure-origin-as-secure”似乎不再被 Chrome 识别。
  • @trinity420 既然你提到了它,我只是注意到它也停止了对我的工作。但我找到了解决方案。我更新了我的答案,它现在应该对你有用。
  • 注意:unsafely-treat-insecure-origin-as-secure 标志在 Chrome 63 中被破坏,并且在 64+ 中再次起作用。 --reduce-security-for-testing 不再做任何事情,并且不再需要 --user-data-dir 标志。
  • 好吧。它不工作。就如此容易。我尝试了所有建议,阅读了有关它的所有内容,无论有没有用户目录,有或没有端口,标志不在“chrome://flags/”页面中。我完全是为了安全,但这近乎荒谬。编辑添加版本:基于 Debian 9.4 构建的 Chromium 版本 67.0.3396.87(开发人员构建),在 Debian 9.3(64 位)上运行,只需我的两分钱。
  • 从 Chrome 71 开始,@kartik-sharma 下面的回答对我有用,需要注意的是你每次都必须设置它,它仍然抱怨它是一个“不受支持的”标志。 stackoverflow.com/a/53388534/241244
【解决方案3】:

您还应该为该会话使用临时的新配置文件。像这样:

chrome.exe --user-data-dir=/test/only/profile/dir --unsafely-treat-insecure-origin-as-secure="http://example.com"

【讨论】:

  • 这在 Chrome 62 之前是必需的。现在不再需要了。
【解决方案4】:

只是针对 Chrome 70 的更新。效果很好

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir=C:\ChromeTempFiles --allow-running-insecure-content

现在有人知道是否有 Firefox 的等价物吗?

【讨论】:

    【解决方案5】:

    对于 Chromium 44 使用

    --不安全-treat-insecure-origin-as-secure=http://192.168.0.101:3000

    改为

    --不安全-treat-insecure-origin-as-secure=http://192.168.0.101:3000

    看到bug

    【讨论】:

      【解决方案6】:

      在 Google Chrome 中,您只需在地址栏中输入“chrome://flags”,然后搜索“--unsafely-treat-insecure-origin-as-secure”,启用该标志,然后输入下面的字段(可以输入多个以逗号分隔)您希望视为安全的域。这可能会或可能不会损害您的安全性,但我认为不会因为 getCurrentPosition() 和 watchPosition() 是最近不推荐使用的功能。这也适用于公共服务域。

      【讨论】:

        【解决方案7】:

        对于 Chrome 79,此设置无论如何都不起作用。

        我最终做的是在 VPS 上配置域以显示一些测试网页,然后使用 Let's Encrypt 的 certbot 为其生成有效证书。

        然后我将该证书复制到我的机器上,它现在有效。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-11-23
          • 2015-08-15
          • 2015-05-19
          • 2015-06-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多