【问题标题】:In android's Google Chrome, how to set unsafely-treat-insecure-origin-as-secure在 android 的 Google Chrome 中,如何设置 unsafely-treat-insecure-origin-as-secure
【发布时间】:2016-01-19 13:59:00
【问题描述】:

我在我的网络应用程序中使用getUserMedia(),当我在本地主机上测试我的应用程序时它工作正常。但是,如果我将笔记本电脑视为服务器并在我的 android 手机的 Google Chrome 浏览器中启动应用程序,则会出现错误:

getUserMedia() 不再适用于不安全的来源。要使用这个 功能,您应该考虑将您的应用程序切换到安全的 来源,例如 HTTPS。详情请见https://goo.gl/rStTGz

当我检查 [https://goo.gl/rStTGz][1] 时,我知道 getUserMedia() 在不安全的来源上已被弃用。写的是开发模式,

您可以使用 --unsafely-treat-insecure-origin-as-secure="example.com" 标志(将“example.com”替换为您实际要测试的来源)

如何以及在哪里设置此标志?还有其他选择吗?

【问题讨论】:

    标签: android google-chrome getusermedia secure-context


    【解决方案1】:

    这可以通过chrome://flags/about://flags 完成。

    转到about://flags,搜索unsafely-treat-insecure-origin-as-secure 标志并启用它。您必须提供您希望被视为安全的来源。
    可以以逗号分隔值的形式输入多个来源。进行此更改后
    重新启动您的浏览器。

    请注意,协议部分也很重要,仅指定 IP 地址或域名是不够的。例如。 http://http://192.168.43.45。如果您不使用端口 80,那么您可能也必须指定它。

    以下是我的手机截图。

    手机:三星 Galaxy S10e
    Android 版本:10(Android 10)
    Google Chrome 版本79.0.3945.136

    对于我正在构建的网站的本地测试,需要地理定位。 允许在安全位置进行地理定位。我确实有一个带有 HTTPS 证书的生产服务器,但是如果我每次都必须向它上传内容,那么开发和调试过程会变得太慢。

    更多信息

    1. https://www.chromium.org/Home/chromium-security/prefer-secure-origins-for-powerful-new-features

    【讨论】:

      【解决方案2】:

      localhost 移动到设备

      一种方法是在您的 Android 设备上运行 HTTP 服务器。对this question 的回答一致认为NanoHTTPD 值得一试。如果您想要一个现成的应用程序,请在 Google Play 商店中搜索http server for android 出现Simple HTTP Server。将 Web 应用程序的客户端复制到设备并启动服务器后,您应该可以在 Android 版 Chrome 中打开 http://localhost:12345

      或者让您的测试服务器安全

      您可以在不使用--unsafely-treat-insecure-origin-as-secure 的情况下测试仅安全上下文功能,方法是将您现有的测试服务器转变为可能值得信赖的来源。请按以下步骤操作:

      1. 如果您还没有在registrar that bundles DNS hosting compatible with the dehydrated ACME client 上拥有域,请注册一个。这会产生费用,只要您保持域活跃,该费用就会重复。
      2. 将子域指向您的测试 Web 服务器的内部 IP 地址。它不需要通过 Internet 访问。
      3. 使用NameVirtualHost 或类似名称,配置您的测试网络服务器以响应此子域的端口 443 上的 HTTPS。
      4. dehydrated ACME client 与适当的dns-01 挂钩用于您的DNS 主机,从Let's Encrypt 为您的测试网络服务器获取证书。
      5. 将此证书安装到您的测试网络服务器中。

      【讨论】:

        【解决方案3】:

        我也遇到过这个问题,但是在 Chromium 和 Ubuntu 中。我解决了在控制台中运行此命令的问题:

        chromium-browser --unsafely-treat-insecure-origin-as-secure="http://localhost.dev:3000" --user-data-dir=~/.config/chromium/Profile 1
        

        其中 localhost.dev:3000 是您的网站。

        其他系统信息有:

        where is data directory

        how to launch chrome and set keys

        关于--unsafely-treat-insecure-origin-as-secure标志的简短信息:

        将给定的(不安全的)来源视为安全来源。多个来源可以 被供应。除非还提供了 --user-data-dir,否则无效。 示例:

        --unsafely-treat-insecure-origin-as-secure=http://a.test,http://b.test --user-data-dir=/test/only/profile/dir

        我没有检查,但对于 android,您也许还可以在 chrome://flags 页面上设置标志。

        【讨论】:

        • 据我所知 - 这不适用于 Android。没有明显的方法可以运行终端命令来启动 chrome,并且该设置不存在于 chrome://flags
        • 这个答案完全没有抓住重点。该问题专门针对 Android。
        猜你喜欢
        • 2017-04-03
        • 1970-01-01
        • 1970-01-01
        • 2015-05-19
        • 2013-05-17
        • 1970-01-01
        • 2017-11-17
        • 1970-01-01
        • 2018-11-23
        相关资源
        最近更新 更多