一尘不染

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

javascript

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

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


阅读 1901

收藏
2020-05-01

共1个答案

一尘不染

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"

2020-05-01