我正在为我的一位客户制作教育网站,他要求实现一个功能,能够防止用户在网站上录屏,因为该网站将有付费内容和一些 Vimeo 视频,所以他不希望通过录屏来窃取他的视频。我知道这可以在 Android 或 IOS 应用程序中完成。作为 React 开发人员,我也可以使用 Expo 为 Android 应用程序实现此功能。但客户希望在 Web 浏览器上为网站执行此操作。我已经花了4个小时在网上搜索,但仍毫无头绪,因为我没有找到一种解决方案。
请问我该如何做到这一点,或者它是否可能?
这些答案有点错误。它们使用称为DRM(数字版权管理)的技术。
DRM(数字版权管理)播放器是实施DRM技术以保护数字内容(例如视频、音乐和电子书)免受未经授权的访问、复制或分发的媒体播放器。DRM通常涉及加密内容并限制对解密密钥的访问,该密钥仅供授权用户使用。
在防止屏幕捕捉方面,DRM播放器通常使用加密和水印技术的组合。视频被加密,播放器在播放时即时解密。但是,解密过程通常在受保护的环境中进行,这使得屏幕录制软件难以捕获解密后的内容。播放器还向视频帧添加一个不可见的水印,用于识别观看视频的观众。当尝试屏幕录制时,播放器可以在捕获的帧中检测到水印,并显示黑屏或其他混淆方法,以防止视频被录制。
这种技术之所以有效,是因为屏幕录制软件捕获屏幕上显示的任何内容,无论它是否加密。但是,如果屏幕录制软件无法访问解密的内容,则仅会捕获黑屏或混淆方法,这使得录制的视频变得毫无用处。
我不能用一个简单的答案清晰地解释这个过程是如何工作的,因为需要理解很多东西。希望我的回答能给你一些信息。
很遗憾,目前看起来这是不可能的。当前,浏览器无法理解是否有人正在录屏。
如果浏览器能够识别像录屏这样简单的操作,这将是一种非常严重的安全风险。这将意味着浏览器拥有比其应该具有的更高级别的权限。
您应该向您的客户说明这一点。有时客户仅仅是无法理解技术。
一些人通过检测特定的扩展名/快捷键、窃取焦点/失去焦点时暂停视频等方式来防止屏幕录制。还有一些人采用隐蔽的方式(发现软件bug)。此外,一些屏幕录制器可能会尊重一些元数据/声明。通过这种方式,您可能能够防止一些常见的屏幕录制器,但不是所有的。