做后台系统,或者版权比较重要的项目,产品经常会提出这样的需求:能不能禁止用户截图?有经验的开发者不会直接拒绝产品,而是引导。首先了解什么是初始要求?内容数据过于敏感,严禁泄露。或者内容泄露后,需要追根溯源,追究责任。不同的需求需要不同的解决方案。让我们来看看限制用户截图。你有什么想法?有哪些想法?V站和somehu上的大佬们给了很多思路,我补充了一些思路。1.基本解决方法是防止右键保存和拖动。这个方案是最基本的,目前只能屏蔽部分新手用户。如果是浏览器,每分钟调出控制台,直接找到图片网址。也可以直接ctrl+p进入打印模式,直接保存再剪切。2.失去焦点后添加遮罩层,有点意思。查看敏感信息时,必须用鼠标单击一个按钮才能完整显示照片。如果失去焦点,则图像显示不完整或直接被遮罩覆盖。3、高速动态拼接的解决方案是可行的,已经在一些网站上得到应用。在视频或图片上随机插入像素,动态跑来跑去。对于客户来说,每时每刻在屏幕上显示的是完整的图像,全靠用户的视觉残留来查看图片或视频。即使是手机也无法完全拍照。实际应用中还有很多地方需要优化。比如用手机视频可以看到完整的内容,但是增加了截图的成本。严重需求vs解决方案事实上,限制用户截图的方案本身就是不合理的,除非对整个设备进行定制,将截图功能阉割在软件上。为此要求添加更复杂的功能对于一些不太安全的要求来说有点颠倒。说说正经的解决方法:1.对于后台系统中的敏感数据或图片,主要是担心泄露。您可以使用45度彩色水印。想要完全去除几乎是不可能的,但是观感比较差。2.图片版权,可以使用目前主流的盲水印。之前看过腾讯云提供的服务。当然,成本也比较高。如果版权需求量大,使用效果更好。3.视频解决办法,抖音下载的时候会有水印乱跑。当然这是经过处理的视频,不是原图,质量损失比较大。Netflix等视频网站使用服务器端权限控制流式传输视频,每次播放时下载加密视频,同时获得短期许可。获得许可后,他们在本地解密并播放。一旦播放停止,许可证将失效。总之,除了Android提供的截图API等底层功能外,其他功能的实现并不完善。即使控制了底层,照样可以拍照、录视频。没有完美的解决方案。不过这样做相对安全。
