用什么样的方法防止图片被抓取?

2018-09-12 11:27:45 +08:00
 jiafaner
公司接了个活,老板说能赚不少钱,对外展示高清照片,后端存储什么的都做好了,现在做到前端了

其中所有匿名用户都能够看到一部分照片,其他的需要登录才能看,但客户的要求是图片需要防止被任意抓取

有没有什么技术能实现随便被抓的,也不用完全避免被抓取,只要能相对不容易被下载就好了
10984 次点击
所在节点    程序员
97 条回复
bumz
2018-09-12 15:17:07 +08:00
简单地说,能免费看到就能免费抓到

各种技术只不过防零预算小白,大不了我雇佣一堆廉价劳动力手工截图
weipt
2018-09-12 15:43:33 +08:00
用一般网站验证码的技术控制图片
uuair
2018-09-12 16:02:07 +08:00
不要用技术解决问题。。。。你把图片放到视觉中国上去,然后谁用了你的图,就让视觉中国起诉他。你俩一起赚钱,何乐不为。
yksoft1
2018-09-12 16:12:15 +08:00
也只有加水印或者不可见数字水印了。
图源拿 JS 加密了,防不住浏览器插件;浏览器插件防住了,防不住操作系统的截图;操作系统的截图防住了,防不住 VGA/HDMI 采集卡。
bumz
2018-09-12 16:13:37 +08:00
放一个服务器加密,前端解密的 demo

https://bumfo.github.io/protect/index

打开控制台,只能看到一个加密过的脚本和加密过的图片
VgV
2018-09-12 16:17:37 +08:00
flash
locoz
2018-09-12 16:19:58 +08:00
注册需要正常手机号+注册最后一步付费验证+登陆付费可见+每天可见高清图片数量限制+图片加密后 js 渲染+隐式水印,js 高度混淆+动态生成+每次更换。
这样够复杂了吧?然而还是挡不住人家招一群实习生手动截图保存
TomatoYuyuko
2018-09-12 16:21:02 +08:00
加水印加法律声明,不然截屏或者拍照岂不是无解。
w516322644
2018-09-12 16:33:27 +08:00
@uuair 2333
Famio
2018-09-12 16:36:39 +08:00
赞同图片加水印,数字的那种
这里是我之前看到过的方案: http://accu.cc/content/pil/watermark/
JmmBite
2018-09-12 16:38:40 +08:00
记得有个漫画是把每张图片分为 N 部分打乱合成,然后前端重组后正常显示。
hicdn
2018-09-12 16:39:16 +08:00
@fuermosi777 用 phantomjs 把图点一遍,就可以下载完高清图,再用 imagemagic 拼接好。现在用 chrome headerless 更方便了
zsdroid
2018-09-12 16:50:15 +08:00
@bumz #45 你以为去掉 canvas 的鼠标事件就万事大吉了??

coolcoffee
2018-09-12 16:54:09 +08:00
可以参考一下 pexels.com ,注册和登录都要过 Google 家 reCAPTCHA 的,然后登录后才能下载高清图, 每下载 10 张就触发一次 reCAPTCHA 验证。 整个网站应该上百万条数据,要一个个点验证码几乎不可能了。
bumz
2018-09-12 18:08:27 +08:00
@zsdroid #53 canvas 保存图片和和截图的原理是一样的,这个只要绘制 canvas 的时候加上水印就行了
xd314697475
2018-09-12 18:39:21 +08:00
我记得我们老师讲过

把图切成若干个部分,然后+水印

前几天遇到一个网站是对访问进行限制,大概是必须包含特定头文件才能访问
uptime
2018-09-12 19:49:36 +08:00
感觉是 H 站……
sampeng
2018-09-12 20:12:54 +08:00
其实没什么意义。你防一次。我只要下一次就可以无限制分发。
除了水印,几乎无解。网页版的东西。有无数办法爆破。。flash 会好点。分块成无数的小图片。然后 flash 按规则拼起来。但你也挡不住直接屏幕截图的。。。。
sampeng
2018-09-12 20:14:54 +08:00
如果你的东西很有价值。。要知道中国有一批人是天天在家闲着没事干的。。人力外包 1 张图 1 毛钱-1 块钱。大把的人抢着干
bk201
2018-09-12 20:16:43 +08:00
有个做法就是转成 flash

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/488463

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX