1
huangke 2018-09-12 12:05:38 +08:00 1
个人觉得这个需求没有两把刷子做不到吧?看看其他人有什么高见
|
2
Cheez 2018-09-12 12:07:37 +08:00 via Android 1
....还防止任意抓取,反正只要有登陆账户就能抓你的图片,你只能控制他抓取的频率,频率高就封号封 ip。图片本身就验证 http 头,就这样了。
|
3
imn1 2018-09-12 12:14:08 +08:00
介绍那个什么四姐骂客腚,或者中国什么图网给你的客户
|
4
Sor 2018-09-12 12:14:31 +08:00
好奇网站内容,防止被任意抓取是只有登录查看的图片还是包含匿名也可以看到的图片呢
|
5
xor 2018-09-12 12:16:11 +08:00 via iPhone 2
js 获取加密图片,解密后绘制到 canvas
|
6
opengps 2018-09-12 12:19:20 +08:00 1
高清图片的下载展示用积分,积分用钱买
|
7
F1024 2018-09-12 12:26:14 +08:00
漫画网站 你去研究下 一般都有防下载
|
8
php01 2018-09-12 12:28:06 +08:00 1
所见即所得,只能控制"见",比如 VIP 会员每天可见次数限制,或购买才可见
|
9
wizardoz 2018-09-12 12:49:55 +08:00 1
用瓦片图显示图片
|
10
rexxtem07 2018-09-12 12:54:44 +08:00 via iPhone
FlashPlayer 解密显示?
|
11
wuhhhh 2018-09-12 13:01:59 +08:00 via iPhone
叼如 eh 也挡不住爬虫的,但是人家直接把大陆 ip 禁了
|
12
moult 2018-09-12 13:08:34 +08:00 via iPhone 15
不管怎么做,都防不了用户直接截图。
|
13
ericgui 2018-09-12 13:10:39 +08:00 1
其实这无解的,你只能先搞起来,然后看日志,人工对某些坏蛋进行截留。
说白了反爬虫,先有爬虫,再去反吧? |
14
001enoolleh 2018-09-12 13:12:12 +08:00 1
加水印,超大范围的那种,
|
15
KgM4gLtF0shViDH3 2018-09-12 13:13:21 +08:00
@xor #5 那 js 怎么防止被抓到呢
|
16
zpf124 2018-09-12 13:13:39 +08:00
@xor canvas 也能右键另存为图片的吧...
我感觉可能除了 被淘汰的 flash 以外,就只有裁剪成 n 块碎片,然后用 css 拼成一张图,这样视觉上是一张图,dom 结构上则是杂乱无章的。 但这只能防扒原图,包括 flash 也不能防止人家截图。 |
17
jswh 2018-09-12 13:14:29 +08:00 1
websocket 加密传输图片数据,接收后画到 canvas 上可能可以。性能网速啥的可能不好。
|
21
nilrust 2018-09-12 13:24:25 +08:00 1
简单啊,
类似之前流行的 QQ 群 那种 付费看图, 图片用 base64 传送内容,也就没有真正意义上的图片链接地址,没付费前传模糊图片,付费后传一次清楚的图片。 |
22
stargazer242 2018-09-12 13:25:12 +08:00
全图水印
|
23
LuffyGu 2018-09-12 13:28:05 +08:00
backgroun-image 也能抓。
|
24
NicholasYX 2018-09-12 13:33:10 +08:00
加水印
|
25
MorningBOBO 2018-09-12 13:35:03 +08:00
给你的图片加水印,抓取你就是变相推广.不是美滋滋
|
27
jiafaner OP |
28
luoway 2018-09-12 13:47:07 +08:00
往 canvas 标签里绘制图片,图片是 base64 的更好(但性能更差)
|
29
fuermosi777 2018-09-12 13:47:52 +08:00 4
预览时显示一个低分辨率的缩略图,鼠标点击一个区域(比如 x=30,y=40),后端计算位置然后加载这个区域的高清图(比如 w=100,h=100 ),用户每点击一处,显示一处的高清图。我们之前学校负责照毕业照的奸商就是这么干的(为了防止下载高清毕业照)。
|
30
jiafaner OP @fuermosi777 太厉害了。
|
31
maxxfire 2018-09-12 13:49:18 +08:00
把图片做成视频,让它慢慢爬吧。
|
32
tomfs 2018-09-12 13:51:16 +08:00 2
不加盐,貌似只能这样了.
https://www.patrick-wied.at/talks/image-protection/demos/demo-encrypted.html 加盐的话,用 webgl 吧 |
33
ala2008 2018-09-12 13:58:27 +08:00
学习哈。。
|
34
vjnjc 2018-09-12 13:58:30 +08:00 1
感觉和技术无关。
没登录,或者是普通用户给他看普通图,vip 用户才给看高清图~ 这也防不了 vip 用户用技术手段下载图片,只能法律见了。 |
35
txwd 2018-09-12 14:06:19 +08:00
插个眼,也想知道有什么好办法
|
36
3a3Mp112 2018-09-12 14:08:25 +08:00
天狼星之类的客户端是能最大限度的防止技术手段录像和截图的。
但是直接过手机拍照无解。 |
37
kernel 2018-09-12 14:12:11 +08:00 via Android
把大图随机分割成大量小图, 在客户端拼接起来显示
|
38
infra 2018-09-12 14:13:44 +08:00
不展示原图,只用 image-data 展示原图编码
|
39
alwayshere 2018-09-12 14:17:05 +08:00 1
后端把图片打乱,前端拼成 css sprite 展示,但是我用 phantomjs 截图又完了,所以,这题无解
|
40
aitaii 2018-09-12 14:25:00 +08:00
手机拍照无解
|
41
bumz 2018-09-12 15:17:07 +08:00 1
简单地说,能免费看到就能免费抓到
各种技术只不过防零预算小白,大不了我雇佣一堆廉价劳动力手工截图 |
42
weipt 2018-09-12 15:43:33 +08:00
用一般网站验证码的技术控制图片
|
43
uuair 2018-09-12 16:02:07 +08:00 5
不要用技术解决问题。。。。你把图片放到视觉中国上去,然后谁用了你的图,就让视觉中国起诉他。你俩一起赚钱,何乐不为。
|
44
yksoft1 2018-09-12 16:12:15 +08:00 3
也只有加水印或者不可见数字水印了。
图源拿 JS 加密了,防不住浏览器插件;浏览器插件防住了,防不住操作系统的截图;操作系统的截图防住了,防不住 VGA/HDMI 采集卡。 |
45
bumz 2018-09-12 16:13:37 +08:00 3
|
46
VgV 2018-09-12 16:17:37 +08:00
flash
|
47
locoz 2018-09-12 16:19:58 +08:00 1
注册需要正常手机号+注册最后一步付费验证+登陆付费可见+每天可见高清图片数量限制+图片加密后 js 渲染+隐式水印,js 高度混淆+动态生成+每次更换。
这样够复杂了吧?然而还是挡不住人家招一群实习生手动截图保存 |
48
TomatoYuyuko 2018-09-12 16:21:02 +08:00
加水印加法律声明,不然截屏或者拍照岂不是无解。
|
49
w516322644 2018-09-12 16:33:27 +08:00
@uuair 2333
|
50
Famio 2018-09-12 16:36:39 +08:00 1
赞同图片加水印,数字的那种
这里是我之前看到过的方案: http://accu.cc/content/pil/watermark/ |
51
JmmBite 2018-09-12 16:38:40 +08:00 1
记得有个漫画是把每张图片分为 N 部分打乱合成,然后前端重组后正常显示。
|
52
hicdn 2018-09-12 16:39:16 +08:00 1
@fuermosi777 用 phantomjs 把图点一遍,就可以下载完高清图,再用 imagemagic 拼接好。现在用 chrome headerless 更方便了
|
54
coolcoffee 2018-09-12 16:54:09 +08:00 1
可以参考一下 pexels.com ,注册和登录都要过 Google 家 reCAPTCHA 的,然后登录后才能下载高清图, 每下载 10 张就触发一次 reCAPTCHA 验证。 整个网站应该上百万条数据,要一个个点验证码几乎不可能了。
|
56
xd314697475 2018-09-12 18:39:21 +08:00
我记得我们老师讲过
把图切成若干个部分,然后+水印 前几天遇到一个网站是对访问进行限制,大概是必须包含特定头文件才能访问 |
57
uptime 2018-09-12 19:49:36 +08:00 1
感觉是 H 站……
|
58
sampeng 2018-09-12 20:12:54 +08:00 1
其实没什么意义。你防一次。我只要下一次就可以无限制分发。
除了水印,几乎无解。网页版的东西。有无数办法爆破。。flash 会好点。分块成无数的小图片。然后 flash 按规则拼起来。但你也挡不住直接屏幕截图的。。。。 |
59
sampeng 2018-09-12 20:14:54 +08:00 1
如果你的东西很有价值。。要知道中国有一批人是天天在家闲着没事干的。。人力外包 1 张图 1 毛钱-1 块钱。大把的人抢着干
|
60
bk201 2018-09-12 20:16:43 +08:00
有个做法就是转成 flash
|
61
qiuqiuer 2018-09-12 20:17:44 +08:00
截图 特征搜索 没什么办法
|
62
qsbaq 2018-09-12 20:29:43 +08:00
几乎无解~
|
63
hackxing 2018-09-12 20:47:17 +08:00 1
大佬们,可以看看中国汽车报的图片处理,我是没抓回来图片。
http://www.cnautonews.com/ |
64
defel 2018-09-12 22:07:27 +08:00 via iPhone
截图无解,如果还不行,手机对着电脑拍照就更无解了。。
|
65
cy97cool 2018-09-12 23:13:27 +08:00
@bumz F12 控制台直接对 canvas 转 base64
document.querySelector("body > canvas").toDataURL("image/png") |
66
xider 2018-09-12 23:16:20 +08:00 via Android
webp,header 里设置成 jpeg
|
67
crab 2018-09-12 23:27:19 +08:00
这和防止视频翻录一样无解
|
68
cy97cool 2018-09-12 23:38:31 +08:00 1
@tomfs 虽然 js 里面把 canvas 的 toDataURL 给覆盖了 但我们还是可以创建一个 iframe 来获取原本的函数
var i = document.createElement('iframe'); i.style.display = 'none'; document.body.appendChild(i); var c=i.contentDocument.createElement("canvas") c.toDataURL.call(document.getElementsByTagName("canvas")[0]) |
69
WriteJob 2018-09-12 23:50:01 +08:00
了解一下~
|
70
yankebupt 2018-09-12 23:50:34 +08:00 1
@jiafaner
如果是观赏类图片(口水) 不知道可不可以打一个 alpha 值很低不影响美观效果,但是抠图起来特别费劲且必定留痕迹的彩色智能水印..... 楼主下次发这个帖子的时候贴两张图诱惑一下我们也好有动力回帖啊.... 这次就算了,说不定问之前都是有图库没版权放出来要出事...下次记得买几张图放出来贿赂一下 233 |
71
jiafaner OP @yankebupt 不是观赏类的图啊,是一些特别专业的一些行业图,都是些图纸啥的,也有一些有版权的照片,还有一些奇怪的不认识的东西
|
72
libook 2018-09-13 00:07:33 +08:00 1
puppeteer 项目了解一下,你就理解了什么是能见到就能抓到。
CDN Token 鉴权、Canvas 绘制、高频水印、IP 限流等等无非就是提升爬图的难度,但都是可破解的,防菜鸟不防大牛,之前新闻里说的阿里能在截图里藏匿截图者的信息,但这也只是为了事后调查保存证据。 牛 13 的公司从来都是通过法务手段来解决版权问题的,参见迪斯尼、甲骨文和微软。。。 |
73
HanSonJ 2018-09-13 00:10:47 +08:00
应该是美女图片项目,付费会员即可浏览全部高清无码大图
|
74
icy37785 2018-09-13 00:20:34 +08:00
图片是真的难办,因为最不济可以截图呀。。。。
|
75
billlee 2018-09-13 00:36:11 +08:00
DRM, 一群顶尖软硬件厂商一起,从光盘武装到显示器都搞不好的问题。
|
76
Rehtt 2018-09-13 00:52:04 +08:00 via Android
录屏,截屏,拍照 基本无解
|
77
yankebupt 2018-09-13 00:52:37 +08:00 2
@jiafaner 图纸的话有个很不友好的方法,免费试用用户看到的都是程序随机抹过线的版本,自动擦除 5%到 15%的线或图例什么的(如果用户强迫症也可以做成固定 2%消除随机 13%每次刷新不一样之类),提前提示用户图纸处理过尽量办会员或充点积分啥的...
|
80
akira 2018-09-13 02:35:22 +08:00
相对不容易?那就每张图片查看都需要给钱就好了啊
|
81
fuermosi777 2018-09-13 05:14:06 +08:00
@hicdn 确实,算是防君子不防大牛吧 :)
|
82
Fulcrum 2018-09-13 08:22:30 +08:00 via Android
FLASH
|
83
Adamla 2018-09-13 08:38:13 +08:00
又能赚不少钱,又是高清图片,诶呀~~
|
85
greatghoul 2018-09-13 08:49:54 +08:00 via Android
除非不给用户展示高清图片,否则没有办法防的。
|
86
greatghoul 2018-09-13 08:51:07 +08:00 via Android
上面各种意淫的是没听过无头浏览器吧。
|
87
cfq1491 2018-09-13 09:00:01 +08:00 1
你要明白,图片就是给人看的,所以你就无法防止别人截图,只能限制截图出来的效果,比如展示缩略图,对图片进行水印处理;如果非要展示高清图片,就必须限制 IP 和账户下载次数,对账户进行支付宝信用验证等手段了;还有一个思路就是对图片链接随机处理。
|
89
shakoon 2018-09-13 09:44:59 +08:00 1
把大图以随机尺寸切割为不同大小的小图,这样在前端另存时就非常麻烦了。当然爬虫还是有办法能把图再拼接出来的,但也已满足“相对不容易被下载就好了”的需求了
|
90
Mutoo 2018-09-13 10:03:33 +08:00
碎图+乱序 DOM+随机反相滤镜+svg 反相滤镜恢复+css 乱序恢复+不等长动画载入+随机水印。
|
91
imdoge 2018-09-13 10:21:20 +08:00
只能加隐藏水印事后起诉吧,所见即所得,大不了人家 puppeteer 截图咋防
|
92
winglight2016 2018-09-13 10:42:24 +08:00 1
要看具体需求了,目前我见过防抓取最严密的就是 google project art 了,当然了,这网站的初衷是为了解决超大分辨率图片的加载,不过间接导致我想下载到本地的时候发现根本无从下手——整张图只能靠手动拖来拖去然后等待加载高分辨率版本,我感觉这技术非常先进了
|
93
hundan 2018-09-13 10:48:11 +08:00 via Android
AES 后端加密前端解密,打盲水印,顶多就是这样了
|
94
openbsd 2018-09-13 10:52:21 +08:00 1
技术上 会员制+数字盲水印+版权条款 可以解决大多数问题,至于 拍屏 /屏幕采集 的,相当于外置硬件了,你有那种长长的可以伸到用户家的望远镜么......
|
95
codingKingKong 2018-09-13 10:54:42 +08:00
打水印, 要清晰, 要大~
否则... 我数数啊, 爬虫解析 DOM 获取 URL, 模拟调用接口, 模拟截屏, 实在不行, 我还能用手机拍... |
96
Felldeadbird 2018-09-13 11:07:23 +08:00 1
参考视觉中国的做法。抓让他们抓啊。。反正你声明好:
本图片版权归 XXX 所有,任何非法盗取、使用…… 广撒网,等着钱进口袋。岂不美哉? |
97
459077797 2018-09-13 16:57:33 +08:00
图片打印出来,放个展厅 谁要看就来看,不准拍照
|