网站上的图片不想让用户下载,又不想打水印影响图片美观,js 已经阻止了右键保存和拖拽,但是用户一截图又相当于保存图片了,有没有什么方法可以阻止用户截图?
101
h19981126g 2018-09-18 18:04:40 +08:00
个人觉得没意思,就算你全部阻拦了,也阻拦不了抓包
|
102
Luzifer 2018-09-18 18:10:53 +08:00
shintendo
#26 战略马克 |
103
Greatshu 2018-09-18 18:11:33 +08:00 6
即使用户不懂技术,你能阻止用户在虚拟机外截图?
|
104
huclengyue 2018-09-18 18:11:42 +08:00 via Android 1
想多了,我调用浏览器外的程序截图。你能阻止?
|
105
UnknownR 2018-09-18 18:14:57 +08:00
真想截图的人,连视频信号采集器都能用上,你拿什么阻止
|
106
shuax 2018-09-18 18:25:35 +08:00 4
这需求不复杂啊,以前我们老板还让我研究怎么把公司网站放到百度首页。
|
107
xiejinpeng007 2018-09-18 18:27:07 +08:00
不知道前端有没有这样的操作:
开放右键另存为,但是存的时候加水印。 |
108
lusheldon 2018-09-18 18:35:59 +08:00 via Android
把产品名字曝出来,阻止用户就行了,没有用户自然没有用户截图
|
109
fmumu 2018-09-18 18:46:57 +08:00 via Android
禁用 J's,f12 看下路径直接下载,怎么阻止?
|
110
otato 2018-09-18 18:54:04 +08:00
233,之前做个几个潮牌,都有这需求
|
111
penghangtech 2018-09-18 18:56:55 +08:00
@shuax 运营的同学让技术 gg 把微信的导航栏做成透明的
|
112
vakara 2018-09-18 18:56:57 +08:00 via Android
那是不是还要阻止拍照……
|
113
supuwoerc 2018-09-18 18:57:56 +08:00
这需求。。我觉得产品会和前端打起来。。
|
114
leeolsen 2018-09-18 18:58:36 +08:00
Netflix 的 app 里一截屏就黑屏
|
115
lelsetsuna 2018-09-18 19:01:30 +08:00
浏览器里的 Netflix 在播放视频的时候截图也会直接把内容黑掉,不知道怎么实现的。
|
116
YUCOAT 2018-09-18 19:02:47 +08:00 1
尝试一波下面的操作:
1、一旦网页丢失鼠标键盘的焦点之后立即隐藏图片 2、能否监听 PrtSc 按键,一旦按下之后立即隐藏图片 我看这个网站是能监听 PrtSc 按键的 http://www.keyboardtester.com/ |
117
fiht 2018-09-18 19:12:16 +08:00
我怕你们打起来...
|
118
ZXCDFGTYU 2018-09-18 19:22:47 +08:00
还不如显示出来的图片就是低清晰度分辨率的图片,截图走了也毛线用没有
|
119
allenhu 2018-09-18 19:25:18 +08:00
话说什么叫截屏,不是太理解,录屏软件开着算不算?建议关键部位打上马赛克,这样最安全,不然你完全无法阻止。
|
120
expy 2018-09-18 19:48:19 +08:00
可以参考下视频保护那一套,DRM/HDCP/AACS。
|
121
xcatliu 2018-09-18 19:52:32 +08:00
屏幕录制就可以了
|
122
Davidwg 2018-09-18 19:53:49 +08:00
跟检测手机壳颜色的需求有异曲同工之妙
|
123
vmebeh 2018-09-18 19:54:39 +08:00 via iPhone
没有,
js 再怎么也跳不出浏览器窗口吧,随便激活一个网页外的窗口,键盘鼠标随便按 js 也不会知道呀 |
124
jimzhong 2018-09-18 20:14:50 +08:00
没有。除非你用 DRM。但是用 DRM 也不能组织有人用特殊硬件移除 DRM。
|
125
C2G 2018-09-18 20:19:50 +08:00 via Android 1
@DOLLOR 我记得这种方法电影届防盗版用过,加的超声水印,不同影院不同场次不同,轻松定位盗版来源。
不过图片不像电影,加隐形水印没法识别的吧 |
126
boris1993 2018-09-18 20:39:15 +08:00 via Android
有没有一种方法,js 阻止用户把图画下来 /滑稽
嘛,说正经的,感觉吧,还是打水印,和在文件的元数据里加指纹(如果有这个技术的话),更靠谱一点 控制文件比控制用户应该简单多了吧 |
127
AEANWspPmj3FUhDc 2018-09-18 20:40:47 +08:00
假设就要大胆,就假设,能用 js 阻止用户截图、抓包。
别忘了,还有个东西叫做虚拟机。 |
128
QNLvw5fLfr7c 2018-09-18 20:48:10 +08:00 via iPhone
培养一个强大的律师团队
|
129
loading 2018-09-18 20:51:15 +08:00 via iPhone
鼠标焦点不在浏览器,全屏你能阻止?
|
130
gaocc 2018-09-18 21:05:34 +08:00
为什么要阻止用户截图?何况截图的效果很差,美工一般都不直接截图,要不从链接里拿,要不自己写 js 脚本拿。
|
131
CloudnuY 2018-09-18 21:31:01 +08:00
开个虚拟机就完事儿了,想啥呢?
|
132
realpg 2018-09-18 21:38:44 +08:00
|
133
suyuyu 2018-09-18 21:41:24 +08:00
我自己的电脑 你怎么阻止
|
134
Gua 2018-09-18 21:42:33 +08:00
醉了 手机拍照 怎么阻止
|
135
zoffy 2018-09-18 22:15:08 +08:00
我想阻止地球自转
|
136
mingyun 2018-09-18 22:54:34 +08:00
产品脑回路可以的
|
137
liuguang 2018-09-18 22:57:00 +08:00
网页是突破不了沙箱的,哈哈,我用 QQ 截图,你这个网页难道还能跑出来打我?哈哈哈哈哈哈哈哈
|
138
VgV 2018-09-18 23:25:02 +08:00
楼主别闹。。。。
|
139
kersbal 2018-09-18 23:30:12 +08:00
哈哈可以定制一个低端平板,把接口全去掉,搞个内置防火墙只能连你们公司的 ip,除了定制的浏览器其他功能一概没有,usb 只有充电功能,然后给用户一人发一个大家来看图
|
140
Mavious 2018-09-18 23:32:14 +08:00
最烦你们这种在 js 里阻止复制的人了,复制几个文字还得把 js 暂时屏蔽掉。
|
141
qiuqiuer 2018-09-18 23:34:20 +08:00 via Android
你干脆用 js 阻止用户用电脑吧
|
143
alvin2ye 2018-09-18 23:37:17 +08:00 2
用 JS 驱动摄像头, 识别到有人拿相机就退出.
|
144
beastk 2018-09-18 23:38:30 +08:00 via iPhone
图片设置具有阅后遗忘功能吧
|
145
moposx 2018-09-18 23:38:57 +08:00 via Android
阻止用户复制文本什么的都能用油猴脚本解决....
这个 js 我认为是做不到的,除非你从 OS 层面阻止 |
146
fyyz 2018-09-18 23:41:14 +08:00 via Android
我先开 OBS,然后开虚拟机,然后虚拟机里开浏览器,你怎么拦截?
|
148
KgM4gLtF0shViDH3 2018-09-19 07:47:42 +08:00 via iPhone
@mokeyjay #17 录屏咋办……
|
150
guanhui07 2018-09-19 08:10:49 +08:00
那是不是还要阻止拿手机拍照 录视频……
|
151
SimbaPeng 2018-09-19 08:13:04 +08:00
牛逼也吹完了,方案也有了,楼主记得做好了,发出来让大家看看
|
152
qilishasha 2018-09-19 08:15:15 +08:00
完全可以实现,设定一个透明层,鼠标必须有响应、并且 insert 键必须常按,才能看到图片。一但检测不到条件,引爆…… BOOM
|
153
skinny 2018-09-19 08:17:35 +08:00
C 都没办法,凭什么你认为 JS 可以?
|
154
MOONYANYI 2018-09-19 08:32:49 +08:00 via Android
参考一下,支付宝和微信两者的收款码不允许截图,但只只应用 Android,因为是调起手机内置功能
|
155
yinzhili 2018-09-19 09:07:34 +08:00
把网站彻底关闭,从根本上解决所有问题
|
156
lcdxiangzi 2018-09-19 09:07:51 +08:00
我觉得有两个帖子有意思,26 楼的思路确实可以试一下,然后 103 楼提到用虚拟机操作,虚拟机操作可以规避高频随机拼接图片不完整的问题吗?
不是很懂诶 |
157
9ki 2018-09-19 09:14:19 +08:00
..比较好奇楼主最后能实现到哪种程度,期待结果
|
158
Felldeadbird 2018-09-19 09:19:52 +08:00
之前不是有一个做法,JS 去获取后端一部分输出的区域图? 要看全图就的买。。?
|
159
LeeSeoung 2018-09-19 09:20:21 +08:00
要是人家直接抓你图片的包 自己拼出来呢?
|
160
ashes1122 2018-09-19 09:20:35 +08:00
@alwayshere 既然图片是拼凑出来的,那如果有人再另外做出拼凑的功能把图片获取到呢?
|
161
crab 2018-09-19 09:21:38 +08:00
残缺 拼凑 不就是现在的滑动图片验证码形式吗?
|
162
Neoth 2018-09-19 09:22:35 +08:00
你们讲那么热闹,怎么没人发一个 demo 网站,让大家去截图试试呢???
|
164
jydeng 2018-09-19 09:26:59 +08:00 1
#26 的想法点意思,楼主做好了可以放个 demo 学习一下吗
|
165
irisfor 2018-09-19 09:35:19 +08:00
残缺的部分用什么替代……就网页背景色吗,感觉频闪肉眼可见吧
|
166
shilyx 2018-09-19 09:39:50 +08:00 1
残影法试过,失败了
当时是一篇文章,没三个字符中同一时间只显示两个,屏幕闪得不行,遂放弃 |
167
phpcxy 2018-09-19 09:44:38 +08:00
残影法会不会人家以为你在挖矿啊。。。
|
168
lneoi 2018-09-19 09:45:53 +08:00
能得到完整的图片碎片,再加上是在前端用 js 拼凑的。那能直接翻 js 然后拼出完整的图片吧
|
169
scriptB0y 2018-09-19 09:45:56 +08:00
Netflix 的任何版本(包括 IOS )都截不了图,看电影是能看,已截图就是黑的,只有字幕,不知道咋做到的,感觉很牛逼
|
171
greatghoul 2018-09-19 10:00:32 +08:00
chrome devtools
|
172
NaiveSimpleYoung 2018-09-19 10:06:31 +08:00
随机显示碎片还是可以录屏后提取 24 帧然后拼凑,考虑下如何增加拼凑难度 hhhh
|
173
xxdd 2018-09-19 10:10:36 +08:00
什么鬼需求 我手机拍照好了伐
|
174
laoyuan 2018-09-19 10:10:57 +08:00 1
我感觉 26 楼不可行,图片的正常部分有残影,残缺部分也有残影啊,结果就是糊在一起了
|
175
seassin 2018-09-19 10:19:57 +08:00
v2ex 戾气那么重的地方楼猪还能分享想法,佩服。
如果只有一张图片的话,是否能把 setInterval 换成 window.requestAnimationFrame 呢?这样能把图片打得更碎,同时帧率更高? |
176
laoyuan 2018-09-19 10:25:42 +08:00
我提供一个思路,一个像素按 RGB 分成 3 种颜色,这个像素点快速高频随机切换这 3 种颜色,是否可以呈现出原色?
简化一下的话,比如把图片切成 32 块,每块按 RGB 分成 3 种颜色,全都高频闪动,也许可行吧 |
177
openbsd 2018-09-19 10:40:29 +08:00
不好意思,我就是那个在设计公司传授 图形加载完后快捷键关闭浏览器的 JS 功能,然后另存 /截图,从未失手的人
|
179
laoyuan 2018-09-19 11:08:01 +08:00
@PERFECTCN 我也忍不住测试了,`setInterval( )` millisec=1 也不灵,刷不到足够高的频率,我感觉也就是一秒 10 帧的样子吧。用 Flash 能刷到更高?
|
181
thesunfei 2018-09-19 11:18:27 +08:00
加个 CSS,页面默认全透明,只有鼠标浮动上去才变不透明。截图时浏览器是检测不到鼠标浮动的。
|
182
Admstor 2018-09-19 11:20:38 +08:00
JS 刷新怎么可能有那么高的性能
别忘记 JS 也是基于浏览器性能的 |
183
konakona 2018-09-19 11:26:56 +08:00
人家用相机你咋班?
|
187
j 2018-09-19 11:47:10 +08:00
看来除非用小号来提问网站的名字
是不会有人想知道这是啥网站了 略悲哀呢 |
188
openbsd 2018-09-19 11:57:34 +08:00
@BinRelay #186
Chrome 应该需要手动配置,而且可能无法越过一些网站的设置(设置后需要刷新才对当前页生效),网站检测 JS 关闭后会拒绝加载。 当时是在设计公司,MAC 系统 Safari 设置关闭 JS 后不刷新就可以对当前页生效,手动设置快捷键后拿图非常舒服..... |
189
tabris17 2018-09-19 12:04:26 +08:00
@scriptB0y ios 不知道,windows 使用 directx 输出图像,print screen 截不到,不过可以通过其他软件截图
|
190
chaim 2018-09-19 12:40:17 +08:00
自己开发软硬件和协议
|
191
ICU 2018-09-19 12:53:44 +08:00
楼主做好后,一定要给个链接 让我学习一下😏
|
192
xmsz 2018-09-19 13:53:40 +08:00
真的控制不住也要嘲讽一下 哈哈哈哈
我不知道这是哪来的想法 又是哪来觉得 js 可以做得到 很有意思,特别是居然还发出来,让大家看笑话 哈哈哈哈 |
193
duan602728596 2018-09-19 13:59:33 +08:00 via iPhone
求求你们,放过 js 和浏览器吧
|
194
rebeccaMyKid 2018-09-19 14:12:34 +08:00
@jydeng 怎么这么多嘲讽的,我也想看 demo。
|
195
DANG 2018-09-19 14:12:53 +08:00
还可以屏蔽掉大量网速差的用户,还可以把一部分机能差的用户闪瞎
|
197
dallaslu 2018-09-19 14:45:53 +08:00 3
|
198
Immortal 2018-09-19 14:49:15 +08:00
楼主说的方法在大批量图片同时显示的时候 如何保证 cpu 不给吃炸了
|
199
mytry 2018-09-19 14:51:04 +08:00 1
@alwayshere 视觉残缺之前在验证码上试过,非常明显。如果用在观赏性场合的话,体验会非常差。
事实上,像这种场合并不需要残缺,只需对图片进行局部动态调整也可以。例如通过 canvas 把某个随机区域的色调进行少量调整。或者加一些渐隐渐现、位置随机的水印特效也可以。这样任何时候截的图都不是原图,并且对视觉干扰不大。 |