即使使用HTTPS,WebRTC屏幕捕获仍然不安全

时间:2016-03-07 00:21:18

标签: javascript firefox https webrtc mozilla


我试图抓住屏幕并在浏览器中显示它( Mozilla Firefox )。为此,我使用WebRTC和Web服务器。 HTML和JS在这里:

$(document).ready(function() {

    screen_constraints = { 
        video: {
          mediaSource: "screen"
        }   
    };

    navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || window.navigator.mozGetUserMedia || navigator.msGetUserMedia;
    window.URL = window.URL || window.webkitURL;
    navigator.getUserMedia(screen_constraints, onstream, onerror);

    function onstream(stream) {

        var video = document.querySelector('video');
        video.src = window.URL.createObjectURL(stream);
        video.play();
    }

    function onerror(e) {

      console.error(e); 
    }
});
<!DOCTYPE html>
<head>
<script type="text/javascript" src="jquery-2.1.4.js"></script>
<script type="text/javascript" src="scripts.js"></script>
</head>
<body>

        <video autoplay></video>

</body>
</html>

但执行此代码后,错误发生,控制台显示:

MediaStreamError { name: "SecurityError", message: "The operation is insecure.", constraint: "", stack: "" }

控制台还会在出错前显示警告:"This site uses the SHA-1 certificate; it is recommended to use certificates with the signature algorithms that use stronger hash than SHA-1."。 我使用的是HTTPS,并且我已将我的网站添加到浏览器的例外列表中并允许其拥有所有权限,但此错误不断发生:(
请帮我解决这个问题!

1 个答案:

答案 0 :(得分:1)

可能这是因为同一原点问题。确保在about:config

中正确设置了标记
  • 确保media.getusermedia.screensharing.enabled设为true

  • 并且media.getusermedia.screensharing.allowed_domains列表包含您的域名(如果您的证书中包含www.),

  • 以及This site uses the SHA-1 certificate;...警告,您可以忽略它,它不会影响屏幕共享。