前端怎么樣限制用戶截圖?
做后臺系統(tǒng),或者版權(quán)比較重視的項目時,產(chǎn)品經(jīng)常會提出這樣的需求:能不能禁止用戶截圖?有經(jīng)驗的開發(fā)不會直接拒絕產(chǎn)品,而是進行引導(dǎo)。
先了解初始需求是什么?是內(nèi)容數(shù)據(jù)過于敏感,嚴(yán)禁泄漏。還是內(nèi)容泄漏后,需要溯源追責(zé)。不同的需求需要的方案也不同。來看看就限制用戶截圖,有哪些腦洞?
有哪些腦洞
v站和某乎上的大佬給出了不少腦洞,我又加了點思路。
1.基礎(chǔ)方案,阻止右鍵保存和拖拽。
這個方案是最基礎(chǔ),當(dāng)前可只能阻攔一些小白用戶。如果是瀏覽器,分分鐘調(diào)出控制臺,直接找到圖片url。還可以直接ctrl+p,進入打印模式,直接保存下來再裁減。
2.失焦后加遮罩層
這個方案有點意思,看敏感信息時,必須鼠標(biāo)點在某個按鈕上,照片才完整顯示。如果失去焦點圖片顯示不完整或者直接遮罩蓋住。
3.高速動態(tài)馬賽克
這個方案是可行的,并且在一些網(wǎng)站已經(jīng)得到了應(yīng)用,在視頻或者圖片上隨機插像素點,動態(tài)跑來跑去,對客戶來說,每一時刻屏幕上顯示的都是完整的圖像,靠用戶的視覺殘留看圖或者視頻。即時手機拍照也拍不完全。實際應(yīng)用需要優(yōu)化的點還是挺多的。比如用手機錄像就可以看到完整內(nèi)容,只是增加了截圖成本。
下面是一個知乎上的方案效果。(原地址):https://link.juejin.cn/?target=https%3A%2F%2Fwww.zhihu.com%2Fquestion%2F417108591%2Fanswer%2F1450568587
正經(jīng)需求vs方案
其實限制用戶截圖這個方案本身就不合理,除非整個設(shè)備都是定制的,在軟件上閹割截圖功能。為了這個需求添加更復(fù)雜的功能對于一些安全性沒那么高的需求來說,有點本末倒置了。
下面聊聊正經(jīng)方案:
對于后臺系統(tǒng)敏感數(shù)據(jù)或者圖片,主要是擔(dān)心泄漏出去,可以采用斜45度七彩水印,想要完全去掉幾乎不可能,就是觀感比較差。
對于圖片版權(quán),可以使用現(xiàn)在主流的盲水印,之前看過騰訊云提供的服務(wù),當(dāng)然成本比較高,如果版權(quán)需求較大,使用起來效果比較好。
視頻方案,tiktok下載下來的時候會有一個水印跑來跑去,當(dāng)然這個是經(jīng)過處理過的視頻,非原畫,畫質(zhì)損耗也比較高。Netflix等視頻網(wǎng)站采用的是服務(wù)端權(quán)限控制,走的視頻流,每次播放下載加密視頻,同時獲得短期許可,得到許可后在本地解密并播放,一旦停止播放后許可失效。
總之,除了類似于Android提供的截圖API等底層功能,其他的功能實現(xiàn)都不完美。即使是底層控制了,一樣可以拍照錄像,沒有完美的方案。不過還是可以做的相對安全。
你還有什么新思路嗎?有的話咱評論區(qū)見,歡迎點贊收藏關(guān)注,感謝!.
作者:正經(jīng)程序員
歡迎關(guān)注微信公眾號 :前端陽光