防止网页区域的屏幕截图



我注意到一些网页以某种方式实现了一项功能,以防止对该网页的某些区域进行屏幕捕获。通过对该网页进行截图,而不是我通常可以在浏览器(Chrome(中实时看到的一些区域,在截图上我只能看到一个黑框。Firefox似乎没有这个";特征"-屏幕截图是在没有黑框的情况下正常拍摄的。

Netflix就是这样一个网站的例子。在运行Windows 11的台式电脑上,不可能从Chrome(上次更新(中截取正在运行的电影的屏幕截图(通过键盘上的"打印屏幕"键(。视频控件(播放/暂停、视频位置栏…(可见,但视频本身不可见(黑框(。

什么样的javascript功能/API能够做到这一点?

限制屏幕捕获称为"数字版权管理";从供应商的角度来看。从用户的角度来看,它更像是";最终用户设备控制";。

这是视频播放管道的范围,而不是JavaScript。JavaScript只便于密钥交换,以便您可以在本地解密视频。根据视频提供商可以确定的系统属性,视频的质量可能会受到限制。浏览器大多只接收SD质量。这里有一个JS代码段来列举您的浏览器支持的CDM。

关于屏幕截图预防:如果它没有内置在操作系统中,它将是一个像这里这样的自定义实现(代码(,不会阻止所有进行屏幕截图的可能性,例如使用第三方程序。对于Chrome,据说它与硬件加速纠缠在一起,关闭它,屏幕截图是可能的。

尽管没有什么可以保护内容不被记录在模拟孔中,尽管至少为了防止此类记录的分发,视频提供商在每个用户的基础上添加水印。

如果你想走DRM路线,请参阅此处以获得一个简单的方案来设置自己,或者联系Widevine授权合作伙伴之一以获得L1硬件级别。


为了进一步阅读,Android上的DRM有很好的文档记录,并有一些图表:

  • https://developers.google.com/widevine/drm/overview
  • https://source.android.com/docs/core/graphics/arch-st#st_vid_play
  • https://source.android.com/docs/core/media/drm

最新更新