
我想过用 js 禁止右键,禁止拖拽到地址栏或者图片覆盖一层 div ,还有没有比较巧妙的方式禁止用户复制图片地址?
1 Dragonish3600 Oct 13, 2022 via iPhone 没有任何办法, F12 现原形 |
2 wolfie Oct 13, 2022 canvas |
3 QUC062IzY3M1Y6dg Oct 13, 2022 禁止右键,禁止拖拽,禁止 f12 (可以在 js 还没加载出来提前 f12 ),混淆 Elements 代码 我觉得防盗链是最好的方法了。 |
4 liKeYunKeji Oct 13, 2022 只能骗骗小白,说不定小白学一下,也能会用 F12 去获得图片地址。 |
5 ColinLi &nbp;Oct 13, 2022 防盗链 |
6 AllenCai Oct 13, 2022 blob 试试 |
7 SingeeKing PRO canvas 画正解(不过不能防止从开发者工具中看到) |
8 kop1989smurf Oct 13, 2022 禁止用户复制图片地址 x 图片防盗链 /更换图形的展示方式(比如楼上说的用画布) √ |
9 wangtian2020 Oct 13, 2022 只能防`君子`防不了`小人` |
10 RomeoHong Oct 13, 2022 不要将网页对外开放就好了 |
11 dcncy Oct 13, 2022 via iPhone 域名白名单 |
12 DonaidTrump Oct 13, 2022 via iPhone @shuxhan 不一定非要按 F12 啊,知道网页地址了看图片链接那还不容易么 |
14 muhuan Oct 13, 2022 1. 图片不大的话,直接 base64 放进去,可能影响页面加载速度; 2. 自定义协议,js 端去处理,这样即便拿到链接,无法直接用; |
15 hgc81538 Oct 13, 2022 via iPhone 用 background-image, 加 pointer-events: none |
16 ntdll Oct 13, 2022 防止小白,这两个任选其一: - blob url - canvas.drawImage |
17 killva4624 Oct 13, 2022 以前见过有人把图片放 Flash 里... |
18 Light3 Oct 13, 2022 你的需求 加禁止鼠标点击应该可以 参考某 dn 论坛 如果目标是防止图片被盗用 那就是防盗链咯 |
19 tool2d Oct 13, 2022 blob 和 canvas 可以一定程度加密原始图片 url ,但是没办法防止用户截屏,还是治标不治本。 |
20 jamosLi Oct 13, 2022 svg canvas |
21 rbq123456 Oct 13, 2022 Oncontextmenu="return false" draggable="false" img 标签有这两个原生属性,可以禁止右键和拖拽。 至于 f12 再 js 处理下,基本就 OK 了。 |
22 yeejun Oct 13, 2022 微信截图, 甚至 win 的系统截图都可以取下来. 唯一就是防盗链 |
23 fkdtz Oct 13, 2022 看你想防谁了,防我还行,防 v 站的各位恐怕不太可能 |
24 mingl0280 Oct 13, 2022 via Android 防谁? 没技术的随便禁个 F12 就完了,有技术的我上 Fiddler 搞 mitm 你怎么防得住? |
25 IvanLi127 Oct 13, 2022 base64 丢 background-image 里? 用户能访问的东西基本上就等于用户的东西了,你具体想防什么?防用户用你的图片发布到其他地方? |
26 aaronlam Oct 13, 2022 你能在浏览器显示出来,就别想着不让人知道图片地址是什么,最多就是限制他即使知道了地址他也不能随便拿来外链使用 |
27 krapnik Oct 13, 2022 |
28 cht Oct 13, 2022 可以参考 Getty Images 的方案 |
29 joffey Oct 13, 2022 防不了截图啊 |
30 runze Oct 13, 2022 canvas 或 blob ,然后每帧对图片随机遮罩一部分,这样用户看起来是正常的,但是截图时会发现总是有一部分截不全。 |
31 qzwmjv Oct 13, 2022 终极解决方案,不放图片资源,返璞归真 |
32 zsj950618 Oct 13, 2022 via Android 开个脑洞,图片换成一帧的视频,然后用 DRM ( |
33 liuidetmks Oct 13, 2022 感觉都是无用功,采用自定义格式,自己画可能有点用 |
34 h1104350235 Oct 13, 2022 服务端渲染 canvs ? |
35 novolunt Oct 13, 2022 使用新的图片格式,并且使用自己定制的图片解析器,解析器使用 wasm 载到网站,并存在过期时间和 url 等限制。 这样即使图片给别人下载下来也是无法解析的格式。 |
36 66beta Oct 13, 2022 所以,你这么做的原因是什么? |
37 yougg Oct 13, 2022 给你一条未曾设想的道路 在所有图片中都打上水印(明纹 /暗纹都行) 水印内容为: 各种 ru(华 /共 /包)词汇 保证药到病除,谁转谁死. |
38 dzdh Oct 13, 2022 blob 图片通过 wasm 解密 |
39 yankebupt Oct 13, 2022 虽然想说 F12 显原型包括 blob ,但是考虑到 OP 的问法,很可能是防盗链…… 这个,各大站包括图床都有,就那种同一个图片地址别人贴链接上来就是灰的那种…… 这种是在图片服务器端实现的,可以自己找一找... |
40 KagurazakaNyaa Oct 13, 2022 用 websocket 传二进制,肯定能防盗链 |
42 superrichman Oct 13, 2022 via Android @runze 这个想法妙啊 |
43 helloliao Oct 13, 2022 Firefox 浏览器的 工具→页面信息→媒体,挺好用的 |
44 yolee599 Oct 13, 2022 via Android 给用户定制硬件,比如定制平板,防拆认证要达到银行 POS 机级,检测到被拆就销毁固件,使用 4G 网络并加密通讯,用户要看的时候直接提供定制的平板。 |
45 ZE3kr Oct 13, 2022 用 DRM ,这样截图也截不到,也不需要每帧随机遮罩一部分 |
46 ZE3kr Oct 13, 2022 然后用户拿出了另一个设备拍了一张照片,所有授权全白搭。哪怕每帧随机遮罩一部分,只要曝光时间选对,拍照也可以破解 |
48 paradoxs Oct 13, 2022 这个需求,网页做不到, 但是 windows 客户端是可以做到的。 |
49 lovepplforever Oct 13, 2022 用 three.js |
51 guowq Oct 13, 2022 via Android 简单,加和图片一样大的水印 |
52 sujin190 Oct 13, 2022 via Android inert |
53 sujin190 Oct 13, 2022 via Android html 有个 inert 属性,用来禁止鼠标键盘触摸屏操作的,这个也可以让图片不再出现复制链接和保存到本地的菜单 |
54 zhuweiyou Oct 13, 2022 一楼说得对 |
55 xiang0818 Oct 13, 2022 防止小白很简单。但是会 F12 的就算了。 |
56 iovekkk Oct 13, 2022 笑死,任你百般花样 我直接 alt+A 微信截图 |
57 wu00 Oct 13, 2022 高亮狂闪,把用户眼睛闪瞎 |
58 milkmlik Oct 13, 2022 给图片上个专利吧。发现盗用,律师函警告。 |
59 kasusa Oct 13, 2022 是为了防止用户把你当成图床吗? 保护图片的话 没用啊 用户可以截图的。 |
60 liangyun Oct 13, 2022 图片访问时验证 cookie |
61 li02 Oct 13, 2022 via Android webp 就可以了吧 |
62 YUCOAT Oct 13, 2022 不考虑截屏这种情况, 我觉得可以在网页上创建多个 canvas ,让这些 canvas 拼在在一起,让后将图片各给部位分别绘制到这些 canvas 上,从而看起来像一张图。 最好让这些 canvas 有一些区域重叠,重叠的地方,下面的那一层弄一些混淆。 至于图片的源数据就用 websocket 之类的东西传。 |
64 byteX Oct 13, 2022 弄个大点的水印吧,没啥好的解决方案 |
65 h3n6Qx2UB9a4g477 Oct 13, 2022 @krapnik #27 我觉得这不是加密吧,就是正常的模型纹理。 |
66 iFrey PRO 图片全部用 base64 ? |
68 8888888888 Oct 13, 2022 防盗链啥的也没用,只要你的图片能显示出来,写个脚本根据图片坐标及大小进行截图,一样能搞下来 |
69 Ne Oct 13, 2022 via Android 你 copy 回来,让别人看,又不让别人 copy 。 如果图片是你原创,可上传图片站证明,别人用了发律师函过去收钱。 如果不是原创,浪费时间。 |
70 runze Oct 13, 2022 @a90120411 #67 你的图片通过加密 /切分传输,在前端合成,然后画到 canvas 上,这样可以防止简单的 f12 或者右键另存为。 同时每帧随机用水印或者遮罩盖住一部分,由于视觉暂留现象,浏览者看到的还是完整的图片,但是截图得到的就是不完整的。 |
71 systemcall Oct 13, 2022 图片加密、加鉴权 用 js 解密之后,用 blob 时不时喂给用户一些带盲水印的图,来通过泄露出来的图片追踪用户 很多漫画网站是这么做的 |
72 systemcall Oct 13, 2022 @tool2d #19 要防止用户截屏,可以考虑上 DRM ,用 Widevine 之类的技术,不过对用户的浏览器有要求,国外比较容易覆盖大部分用户但是国内还是不怎么行 移动端的 App ,软件倒是可以感知截屏。截屏得多了,服务器那边传别的图片就可以了,比如某个盗版漫画网站在检测到非官方客户端或者非法操作的时候,会把剩下的图片全变成鬼图,并且是不一样的 |
73 q409195961 Oct 13, 2022 淘宝天猫,详情没禁止,可直接复制 京东,详情用 div ,然后图片放在 background-image 里 |
74 asLw0P981N0M0TCC Oct 13, 2022 @iovekkk 我用手机拍(狗头 |
75 Eytoyes Oct 13, 2022 采集卡可破,甚至可以无视 hdcp |
76 d7101120120 Oct 13, 2022 如果你的图片价值很大,最好的办法就是加上用户水印并且只开放给特定用户。 如果你的图片集价值并不大,随便一个 canvas 基本上就阻挡大多数普通用户了。 这本身就是数据价值与获取成本的博弈,只有你允许对方看到,就没有绝对的办法阻止对方获取。 |
77 cjpjxjx Oct 13, 2022 把图片打印出来,寄给用户 |
78 abc0123xyz Oct 13, 2022 把用户鼠标键盘没收了 |
79 webshe11 Oct 13, 2022 via Android 网站改 APP ,互联网信息孤岛+1 |
80 bthulu Oct 13, 2022 @systemcall 有办法防止用户在虚拟机里打开页面, 在虚拟机外截屏, 或者直接用手机拍照吗? |
81 webcape233 Oct 13, 2022 via iPhone 直接打印 pdf 截图 |
82 Cat7373 Oct 13, 2022 canvas ,传输层自定义协议,不要直接用公共图片格式 |
83 tool2d Oct 13, 2022 |
84 xupefei Oct 13, 2022 via iPhone DRM 能解决所有问题 |
85 systemcall Oct 13, 2022 via Android @tool2d #83 安卓这边,displaymanager 可以获取显示设备,可以设置 flag_secure 来禁止常规的截图。海外市场可以直接上 widevine ,截屏和投屏的内容是黑的 iOS 这边似乎不能限制截图,但是可以捕获截图的事件,投屏的行为也可以感知。安卓不知道怎么感知投屏,但是可以检测是否开启了 adb |
86 systemcall Oct 13, 2022 via Android |
87 0ZXYDDu796nVCFxq Oct 13, 2022 @yougg 这个想法非常可刑 |
88 think2011 Oct 13, 2022 canvas 、视频上面都说了,说一个可以用 box-shadows 直接画 |
89 lanlanye  Oct 13, 2022 在你的静态文件服务器 /CDN 设置验证 Referer 即可防止别人在其他地方引用你的图片地址,防复制属实没有意义 |
90 cheese Oct 13, 2022 canvas |
91 goodboysisme Oct 13, 2022 去看一下脉脉的 web 端 |
92 pennai Oct 13, 2022 在图片上打马赛克,就没人想复制了 |
93 SekiBetu Oct 13, 2022 |
94 sorsens Oct 13, 2022 我直接截图 |
95 WebKit Oct 13, 2022 via Android 用户截图怎么报? |
96 signalas1 Oct 13, 2022 加水印 降画质 |
99 Jirajine Oct 14, 2022 如果是防用户保存,直接截图就行,没意义。 如果是防盗链当图床,那在服务端处理鉴权,或者以非常规格式和协议提供服务。 禁右键禁拖拽的,可以直接 f12 ;禁 f12 更掩耳盗铃,直接浏览器菜单里打开 dev tools 。至于 blob 和 canvas 之类的,f12 直接看网络请求不就完了。 |
100 dangyuluo Oct 14, 2022 直接系统截图呢 |