是否可以在Web应用程序中使用webrtc流式传输桌面信息。如果可能的话,这样的应用程序会是一个安全问题吗?目前我们构建了一个应用程序,可以使用带有webrtc的网络摄像头进行流式传输。但我真的不知道如何将实际的电脑桌面流式传输给某人,我只知道像Skype或TeamViewer这样的本地应用程序,它可以做这样的事情,但网络应用程序?
是的,这是可能的。要流式传输用户的桌面而不是他们的相机,请更换
const stream = await navigator.mediaDevices.getUserMedia({video: true});
带有
const stream = await navigator.mediaDevices.getDisplayMedia({video: true});
这将提示用户共享他们选择的应用程序窗口或桌面。
请注意,浏览器支持目前是有限的。getDisplayMedia在Chrome 72、Firefox 66、Edge 17中实现,并在Safari 11中使用标志。
它也可以在旧版本的Firefox和Chrome上使用adapter.js polyfill,尽管这需要在Chrome中安装网络扩展。
这样的应用程序会是的安全问题吗
是的,存在与屏幕共享相关的重大安全问题。
让网站记录你的桌面的明显风险是它可能会泄露私人信息。
一个显而易见的风险是,当你的浏览器在桌面上可见时,共享你的浏览器或整个桌面是危险的,并且只能在你信任的网站上进行。
这是因为存在于此类网站表面的恶意网站可能会有效地代表您进行浏览并记录结果,从而绕过浏览器中的重要跨来源保护。