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

Javascript chrome 47中的getUserMedia()不使用https,javascript,google-chrome,permission-denied,getusermedia,Javascript,Google Chrome,Permission Denied,Getusermedia,在chrome版本47中,它们强制您使用https,以允许您使用getUserMedia()。 不幸的是,我不能在我的整个网络中使用https,我只在登录rest中使用它(它是一个SPA-单页应用程序)。因此,web地址没有https,只有登录rest使用ssl。 我使用此回购协议时几乎没有任何变化: 我的问题是,是否有任何方法可以在我的web应用程序中使用录音机,并使用http而不是https保留我的web地址?您有什么想法来克服这个问题?允许您收听用户的私人对话。如果它是通过未加密的HTT

在chrome版本47中,它们强制您使用https,以允许您使用getUserMedia()。 不幸的是,我不能在我的整个网络中使用https,我只在登录rest中使用它(它是一个SPA-单页应用程序)。因此,web地址没有https,只有登录rest使用ssl。 我使用此回购协议时几乎没有任何变化:

我的问题是,是否有任何方法可以在我的web应用程序中使用录音机,并使用http而不是https保留我的web地址?您有什么想法来克服这个问题?

允许您收听用户的私人对话。如果它是通过未加密的HTTP启用的,这将允许攻击者注入代码,侦听对话并将其发送给攻击者。例如,如果您在一家酒店的私人会议室使用未加密的WiFi,那么酒店附近的所有人都可以收听。即使你的应用程序通常不处理敏感对话,攻击者也可以用他们的代码替换你的代码,以便在以后使用另一个应用程序时监听

因此,
getUserMedia
只能从中获得。对于测试,您可以通过使用
--不安全地将不安全的源代码视为secure=“example.com”
来启动Chrome,或者直接在
下进行测试http://localhost/

如果你想让你的应用程序收听用户的麦克风,你必须通过TLS提供。这是没有办法的。如果有,它将被视为一个安全漏洞,并在下一版本的浏览器中修复

提示

您可能需要在命令行中添加“http://”,例如:

--不安全地将不安全的源代码视为安全=”http://example.com"

您还可以通过打开
chrome://flags
并搜索
将不安全的源站视为安全的


chrome://flags/#unsafely-将不安全的来源视为安全的

谢谢!我理解以加密HTTP发送音频的风险。让我们暂时搁置这个问题。如果我在iframe中使用录音机,并链接到https录音机应用程序,该应用程序在我的“http”应用程序中处理录音,并将来自该iframe的音频数据的消息发布给他的父母(我的应用程序),然后对音频进行一些处理(甚至以不安全的http将其发送到服务器),这会起作用吗?@Noampz No,因为攻击者可以从外部框架修改内部框架。有关更多信息,请参阅。现在您可以在firefox中使用
getUserMedia()
,而不会在http上出现任何问题。这真的是个错误吗?我觉得在firefox的策略中允许这样的事情。@Teleporting Goat firefox(尚未)在
getUserMedia
上应用安全上下文限制。这可能是因为在Firefox中,安全上下文是最近才添加的。如果像这样的东西包括服务人员、网络蓝牙和加密媒体扩展,@phihag For china没有ssl。在这种情况下该怎么办。如何在没有httpsdont的情况下访问摄像头在51版上有此功能。有人知道哪些版本受到影响吗?只有47?这为我解决了这个问题