🕸️ 第七章 Web网站的创建
📄 一句话概括

禁用右键只是把门把手拆了,门还在;真正管用的是水印、防盗链和视频 DRM,而防复制的目标是把偷的成本抬到不值得。

📝 本节和前面几节的关系

7-10 讲图片怎么存,这一节讲【存的图能不能被拿走】。教材 7-11 的关键词是【防复制代码】——这一项最容易做错方向:写一堆禁用右键的脚本,既挡不住人,又烦了正常用户。

一、先分清你要防的是谁

【防复制】这三个字太笼统,先拆成三类不同的对手,手段完全不同:

这三类要用三种办法对付。 用禁用右键去防爬虫,等于用纱窗挡洪水;用爬虫拦截去防转卖,也拦不住已经登录的付费用户。

二、禁用右键只是减速带

先说最常见、也最没用的那一招。把各类做法的真实效果列出来:

做法 真实效果
禁用右键 挡住随手保存;开发者工具、截图可绕过
禁止选中文本 同上;还会妨碍正常用户复制商品名
图片切片拼接 稍麻烦一点,拼接工具可还原
可见水印 搬走也没法直接用——最有效的一档
不可见水印 不挡复制,但能事后查出是谁流出的
防盗链 挡住别人直接引用你的图片地址
视频 DRM 加密 唯一真正挡住下载工具的手段

核心事实:只要浏览器能把内容显示出来,它就一定到过这台电脑,就一定拿得走。 开发者工具里能翻到原图地址,截图能绕过任何前端脚本,浏览器扩展能直接抓网络流。

禁用右键唯一的实际作用是表态:告诉访问者【这些内容是有主的】。它拦的是无意与随手,不是有意。

三、真正有效的三件事

第一件:水印。 可见水印让搬走的图【没法直接用】——这是最省事、最有效的一档;不可见水印不挡复制,但能在事后查出是哪个用户流出的,用于追责。

第二件:防盗链。 别人不能直接引用你的图片地址,挡住的是最常见的【白嫖流量】。 云服务商和 CDN 都提供这个开关。

第三件:视频 DRM。 这是唯一真正能挡住下载工具的手段,因为它走的是硬件:

DRM 级别 差别
Widevine L1 解密在处理器安全区完成,支持 4K、抗录屏
Widevine L3 纯软件解密,上限 1080p,可被绕过
PlayReady 微软体系,Windows 与 Xbox 上常见
FairPlay 苹果体系,Safari 与 iOS 上常见

光有 token 鉴权不够:链接带签名只保证【不能让别人重复用】,但内容本身仍是可读的流,扩展一样能抓。必须让内容本身是加密的,才真正成立。

所以按目的选手段:

你想防的是 该用什么
竞争对手随手搬图 可见水印 + 禁用右键
自动化批量抓取 在流量层拦机器人,别在页面上较劲
付费内容被转卖 DRM + 每个用户一份动态水印
已经被盗用要维权 不可见水印 + 反向图搜 + 下架通知

一句话:防复制不是把内容锁死,是把偷的成本抬到不值得。 凡是宣称【绝对防复制】的插件,都可以先放下。

四、动手 Demo:为什么 DRM 的级别差在【硬件】上

从分辨率上限这个角度,看清 L1 与 L3 的差距——这也是为什么【软件解密】永远守不住。

print("  Widevine L1:硬件解密,最高 4K,抗录屏")
print("  Widevine L3:软件解密,最高 1080p,可被绕过")
print("  1080p 的像素量只有 4K 的 %.0f%%" % (1920 * 1080 / (3840 * 2160) * 100))

实跑输出:

--------------------------------------------------------------------
防复制——先认清什么挡得住、什么挡不住
--------------------------------------------------------------------
  常见做法与实际效果,一条条拆开看:

  做法              真实效果
  -------------------------------------------------------
  禁用右键          挡住随手保存;开发者工具、截图可绕过
  禁止选中文本      同上;还会妨碍正常用户复制商品名
  图片切片拼接      稍麻烦一点,拼接工具可还原
  可见水印          搬走也没法直接用——最有效的一档
  不可见水印        不挡复制,但能事后查出是谁流出的
  防盗链            挡住别人直接引用你的图片地址
  视频 DRM 加密     唯一真正挡住下载工具的手段
  -------------------------------------------------------
  核心事实:只要浏览器能把内容显示出来,它就一定到过这台电脑,
  就一定拿得走。禁用右键只是【门把手拆了】,门本身还在。

  视频这一档之所以能当真,是因为 DRM 走的是硬件:

  DRM 级别        差别
  --------------------------------------------------------
  Widevine L1     解密在处理器安全区完成,支持 4K、抗录屏
  Widevine L3     纯软件解密,上限 1080p,可被绕过
  PlayReady       微软体系,Windows 与 Xbox 上常见
  FairPlay        苹果体系,Safari 与 iOS 上常见
  --------------------------------------------------------
  所以按目的选手段:

  你想防的是           该用什么
  ------------------------------------------------------
  竞争对手随手搬图     可见水印 + 禁用右键
  自动化批量抓取       在流量层拦机器人,别在页面上较劲
  付费内容被转卖       DRM + 每个用户一份动态水印
  已经被盗用要维权     不可见水印 + 反向图搜 + 下架通知
  ------------------------------------------------------
  一句话:防复制不是把内容锁死,是把偷的成本抬到不值得。
  凡是宣称【绝对防复制】的插件,都可以先放下。

看第三行:1080p 的像素量是 4K 的四分之一。上限定在 1080p,本质上是厂商在承认【软件解密挡不住高价值内容】。 这条差异对内容方是硬约束:想保护 4K 片源,就必须上带硬件安全区的方案——这也是各大平台把高清画质留给认证设备的原因。 回到第一张表:七种手段里,只有 DRM 一栏写的是【真正挡住】。 其余的定位都是【提高难度】或【事后追责】——认清这一点,就不会在禁用右键上浪费时间。

30 秒实验

  1. 在你的网站上右键点一张图,看能不能【在新标签页中打开图片】。
  2. 把一张网络图片拖到桌面,看能不能直接下载——这就是浏览器能拿到的证据。
  3. 找一个你付费的课程或视频平台,看它有没有做防录屏或水印。

常见误区

  1. 错误:禁用右键就能防复制。——纠正:禁用右键只挡得住随手保存。 开发者工具、截图、浏览器扩展都能绕过——它是表态,不是防护。
  2. 错误:加了水印就没人要了。——纠正:可见水印的作用是【让盗用变得不划算】(搬走也不能直接用),而不是让文件无法下载。 它解决的是使用价值问题,不是获取问题。
  3. 错误:视频只要链接带签名就安全了。——纠正:签名只防链接被复用,不防内容被抓取。 视频要真正受保护,必须让内容本身加密(DRM),并配合动态水印追责。
自测三问(点开对答案) 1. 为什么说【禁用右键】基本没用? —— 因为**浏览器要显示内容,内容就必然到过本地**。开发者工具能翻到原图地址、截图能绕开任何前端脚本、扩展能直接抓网络请求——**它只挡得住随手保存。** 2. 想防【自动化批量抓取】,该在哪一层做? —— **在流量层,不在页面层。** 识别并拦截来自机房 IP、代理、异常频次的自动化请求——**在页面上和爬虫较劲是没有尽头的。** 3. 水印和 DRM 分别解决什么问题? —— **可见水印让盗用方拿到也用不了**(解决使用价值);**不可见水印用于事后追责**(解决举证);**DRM 解决的是【根本拿不到】**——它是唯一真正挡住下载工具的方案。

相关笔记