在Chrome版本47中,它们强制您使用https来允许使用getUserMedia().不幸的是,我无法在我的整个网络中使用https,我只在登录休息时使用它(它是SPA - 单页应用程序).因此,Web的地址没有https,只有登录休息使用ssl.我使用这个repo只有很少的变化:https: //github.com/Jmlevick/html-recorder
我的问题是,有没有办法在我的网络应用程序中使用录音机,并保持我的网址与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"