利用Cloudflare零成本网站图片防盗链

· 记录

目录


核心原理:Referer与防盗链


防盗链的核心在于检查HTTP请求中的Referer请求头。

前提条件


配置前,需确保满足以下前提条件:

  1. 拥有一个个人域名(以 your-domain.com 为例)。
  2. 该域名已成功添加至Cloudflare免费账户,并由Cloudflare进行DNS解析。
  3. 计划保护的图床子域名(例如 images.your-domain.com)已创建。

详细设置步骤


第1步:确保DNS记录已开启Cloudflare代理

WAF规则只对经过Cloudflare网络(即“橙色云朵”)的流量生效。

  1. 登录Cloudflare仪表板,选择相应域名。
  2. 进入左侧菜单的 DNS -> 记录 (Records)
  3. 找到图床子域名(例如 images)的A或CNAME记录。
  4. 确保其 代理状态 (Proxy status) 是“已代理”(显示为橙色云朵)。如果显示为灰色云朵,需手动点击将其切换为橙色。

第2步:定位WAF自定义规则菜单

  1. 在左侧主菜单中,点击 安全性 (Security)
  2. 在展开的子菜单中,选择 WAF (Web Application Firewall)
  3. 在WAF页面的顶部选项卡中,点击 自定义规则 (Custom rules)

第3步:创建并部署防盗链规则

此为核心操作步骤。

  1. 在“自定义规则”页面,点击蓝色的 创建规则 (Create rule) 按钮。

  2. 填写规则名称 (Rule name): 输入一个描述性的名称,例如 网站图片防盗链保护 (Image Hotlink Protection)

  3. 配置匹配条件: 点击“编辑表达式 (Edit expression)”,然后将下面这段经过验证的、可直接复制的表达式粘贴进去:

    (http.request.uri.path contains ".jpg" or http.request.uri.path contains ".png" or http.request.uri.path contains ".gif" or http.request.uri.path contains ".webp") and not http.referer contains "your-domain.com" and http.referer ne ""
    

    注意: 务必将表达式中的 your-domain.com 替换为自己的主域名。

  4. 规则表达式解析:

表达式部分 作用
(http.request.uri.path contains ".jpg" or ...) 锁定目标: 规则仅对请求图片文件(可按需增删格式如.jpeg, .svg)的URL生效。
not http.referer contains "your-domain.com" 设置白名单: 防盗链的关键。规定若请求来源(Referer)不包含指定的自有域名,则条件成立。
http.referer ne "" 允许直接访问: ne意为“不等于”。此条件排除了“空Referer”的情况,确保直接访问图片URL可以成功。
  1. 选择执行操作 (Then... Take action): 对于匹配上述条件的请求,从下拉菜单中选择 阻止 (Block)

  2. 部署规则: 点击页面底部的 部署 (Deploy) 按钮,规则将立即在全球范围内生效。

维护与测试


部署完成后,进行测试以验证效果。

本文作者: 𝓬𝓸𝓵𝓪 🚀
本文链接: https://bb.bins.fyi/archives/31/
最后修改:
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!