GetUserMedia() в chrome 47 без использования https

В chrome версии 47 они заставляют вас использовать https для разрешения использования getUserMedia(). К сожалению, я не могу использовать https во всей своей сети, я использую его только для входа в систему (это приложение для SPA-одиночной страницы). Таким образом, адрес в Интернете без https, только для входа в систему используется ssl. Я использую этот репо с очень небольшими изменениями: https://github.com/Jmlevick/html-recorder

Мой вопрос в том, есть ли способ использовать звукозапись в моем веб-приложении и сохранить мой веб-адрес с помощью http, а не https? какие идеи у вас есть, чтобы преодолеть эту проблему?

Ответ 1

getUserMedia позволяет вам прослушивать приватные разговоры пользователя. Если бы он был включен по незашифрованному HTTP, это позволило бы злоумышленнику внедрить код, который прослушивает и отправляет разговоры злоумышленнику. Например, если вы находитесь в закрытом конференц-зале отеля с незашифрованным WiFi, все, кто находится рядом с отелем, могут слушать. Даже если ваше приложение обычно не обрабатывает конфиденциальные разговоры, злоумышленник может заменить ваш код на их для прослушивания позже, когда другое приложение используется.

Следовательно, getUserMedia доступен только в безопасных контекстах. Для тестирования вы можете освободить свой домен, запустив Chrome с параметром --unsafely-treat-insecure-origin-as-secure="example.com", или просто --unsafely-treat-insecure-origin-as-secure="example.com" тестирование по http://localhost/.

Если вы хотите, чтобы ваше приложение прослушивало микрофон пользователя, вы должны подавать его через TLS. Обойти это невозможно. Если бы они были, это было бы расценено как дыра в безопасности и исправлена в следующей версии браузеров.

ПОДСКАЗКА

Возможно, вам придется добавить "http://" в командной строке, например: --unsafely-treat-insecure-origin-as-secure="http://example.com"