前端怎么樣限制用戶截圖?

做后臺(tái)系統(tǒng),或者版權(quán)比較重視的項(xiàng)目時(shí),產(chǎn)品經(jīng)常會(huì)提出這樣的需求:能不能禁止用戶截圖?有經(jīng)驗(yàn)的開發(fā)不會(huì)直接拒絕產(chǎn)品,而是進(jìn)行引導(dǎo)。

先了解初始需求是什么?是內(nèi)容數(shù)據(jù)過于敏感,嚴(yán)禁泄漏。還是內(nèi)容泄漏后,需要溯源追責(zé)。不同的需求需要的方案也不同。來看看就限制用戶截圖,有哪些腦洞?

有哪些腦洞
v站和某乎上的大佬給出了不少腦洞,我又加了點(diǎn)思路。

1.基礎(chǔ)方案,阻止右鍵保存和拖拽。
這個(gè)方案是最基礎(chǔ),當(dāng)前可只能阻攔一些小白用戶。如果是瀏覽器,分分鐘調(diào)出控制臺(tái),直接找到圖片url。還可以直接ctrl+p,進(jìn)入打印模式,直接保存下來再裁減。

2.失焦后加遮罩層
這個(gè)方案有點(diǎn)意思,看敏感信息時(shí),必須鼠標(biāo)點(diǎn)在某個(gè)按鈕上,照片才完整顯示。如果失去焦點(diǎn)圖片顯示不完整或者直接遮罩蓋住。

3.高速動(dòng)態(tài)馬賽克
這個(gè)方案是可行的,并且在一些網(wǎng)站已經(jīng)得到了應(yīng)用,在視頻或者圖片上隨機(jī)插像素點(diǎn),動(dòng)態(tài)跑來跑去,對(duì)客戶來說,每一時(shí)刻屏幕上顯示的都是完整的圖像,靠用戶的視覺殘留看圖或者視頻。即時(shí)手機(jī)拍照也拍不完全。實(shí)際應(yīng)用需要優(yōu)化的點(diǎn)還是挺多的。比如用手機(jī)錄像就可以看到完整內(nèi)容,只是增加了截圖成本。

下面是一個(gè)知乎上的方案效果。(原地址):https://link.juejin.cn/?target=https%3A%2F%2Fwww.zhihu.com%2Fquestion%2F417108591%2Fanswer%2F1450568587


正經(jīng)需求vs方案
其實(shí)限制用戶截圖這個(gè)方案本身就不合理,除非整個(gè)設(shè)備都是定制的,在軟件上閹割截圖功能。為了這個(gè)需求添加更復(fù)雜的功能對(duì)于一些安全性沒那么高的需求來說,有點(diǎn)本末倒置了。

下面聊聊正經(jīng)方案:
對(duì)于后臺(tái)系統(tǒng)敏感數(shù)據(jù)或者圖片,主要是擔(dān)心泄漏出去,可以采用斜45度七彩水印,想要完全去掉幾乎不可能,就是觀感比較差。

對(duì)于圖片版權(quán),可以使用現(xiàn)在主流的盲水印,之前看過騰訊云提供的服務(wù),當(dāng)然成本比較高,如果版權(quán)需求較大,使用起來效果比較好。

視頻方案,tiktok下載下來的時(shí)候會(huì)有一個(gè)水印跑來跑去,當(dāng)然這個(gè)是經(jīng)過處理過的視頻,非原畫,畫質(zhì)損耗也比較高。Netflix等視頻網(wǎng)站采用的是服務(wù)端權(quán)限控制,走的視頻流,每次播放下載加密視頻,同時(shí)獲得短期許可,得到許可后在本地解密并播放,一旦停止播放后許可失效。

總之,除了類似于Android提供的截圖API等底層功能,其他的功能實(shí)現(xiàn)都不完美。即使是底層控制了,一樣可以拍照錄像,沒有完美的方案。不過還是可以做的相對(duì)安全。

你還有什么新思路嗎?有的話咱評(píng)論區(qū)見,歡迎點(diǎn)贊收藏關(guān)注,感謝!.



作者:正經(jīng)程序員

歡迎關(guān)注微信公眾號(hào) :前端陽(yáng)光