当前位置: 首页 > 面试题库 >

chrome 47中的getUserMedia(),不使用https

东方飞捷
2023-03-14
问题内容

在Chrome版本47中,它们迫使您使用https才能使用getUserMedia()。不幸的是,我无法在整个网络中使用https,而只能在登录页面中使用它(它是SPA-单页应用程序)。因此,Web地址不带https,只有登录名使用ssl。

我的问题是,是否可以在我的Web应用程序中使用录音机并将我的网址保留为http而不是https?您有什么主意来克服这个问题?


问题答案:

getUserMedia允许您收听用户的私人对话。如果通过未加密的HTTP启用了此功能,这将使攻击者能够注入侦听代码并将对话发送给攻击者。例如,如果您位于带未加密WiFi的旅馆的私人会议室中,旅馆附近的每个人都可以收听。即使您的应用通常不处理敏感的对话,攻击者也可以将其代码替换为以便在以后使用另一个应用程序时收听。

因此,getUserMedia仅在安全上下文中可用。为了进行测试,您可以通过启动Chrome
来免除您的域,也可以--unsafely-treat-insecure-origin-as-secure="example.com"直接在下进行测试http://localhost/

如果您希望您的应用收听用户的麦克风,则必须通过TLS进行投放。没有其他办法了。如果存在,它将被视为安全漏洞,并已在下一版浏览器中修复。

暗示

您可能必须在命令行上添加“ http://”,例如: --unsafely-treat-insecure-origin-as- secure="http://example.com"



 类似资料:
  • 我正在构建一个Web应用程序,并计划使用语音识别和navigator.getUserMedia进行音频输入。 我注意到我的桌面浏览器(Chrome在Mac上,v.31.0.1650.63)两次请求使用麦克风的权限。虽然这对用户来说可能有点烦人,但语音识别和音频输入似乎都可以工作。 但是,如果我在Android(Nexus 7, Android v4.4.2;Chromev31.0.1650.59)

  • getUserMedia Historically the only way to interact with local resources on the web is by uploading files. The only local devices you can really interact with are the mouse and keyboard. Fortunately, t

  • 我们希望使用后摄像头进行扫描,并选择正确的后摄像头-主摄像头,而不是宽镜头摄像头。 较新的移动设备(例如三星galaxy s10)有几个前后摄像头。调用enumerateDevices()时,我们会得到前后摄像头的列表。我们想从后摄像机列表中选择主摄像机。我们可以使用约束来选择后置摄像机(面向:“环境”),但我们不知道如何区分每个设备的摄像机是主摄像机还是宽镜头摄像机。

  • imi中内置实现了中间件+控制器方式开发tcp,在一些场景也可以选择不使用,直接监听服务器的packet事件,进行手动处理。 监听写法 <?php namespace Imi\Server\UdpServer\Listener; use Imi\ServerManage; use Imi\ConnectContext; use Imi\RequestContext; use Imi\Bean\A

  • imi中内置实现了中间件+控制器方式开发tcp,在一些场景也可以选择不使用,直接监听服务器的receive事件,进行手动处理。 监听写法 <?php namespace Imi\Server\TcpServer\Listener; use Imi\App; use Imi\ConnectContext; use Imi\RequestContext; use Imi\Bean\Annotatio

  • imi中内置实现了中间件+控制器方式开发websocket,在一些场景也可以选择不使用,直接监听服务器的message事件,进行手动处理。 监听写法 <?php namespace ImiDemo\WebSocketDemo\MainServer\Listener; use Imi\Bean\Annotation\ClassEventListener; use Imi\Server\Event\