防盗链是网络安全的一个重要部分,可以帮助防止其他网站盗用你的网站资源,避免带宽浪费和流量滥用。通过Cloudflare,你可以轻松地为你的站点配置防盗链规则。在这篇教程中,我将带你一步步完成防盗链的配置过程,确保你的网站资源不被未经授权的外部站点访问。
一、前提条件
在开始之前,请确保你已经完成以下准备工作:
- 你的网站已经在Cloudflare中配置并正常运行。
- 你有足够的权限管理Cloudflare的防火墙和安全规则。
- 你理解防盗链的概念,以及如何通过配置规则来限制不合法的外部引用。
二、配置防盗链规则
1. 创建SEO规则
首先,我们创建一个名为 seo 的规则,用于排除一些合法的爬虫和搜索引擎,确保它们能正常访问你的网站资源。以下是步骤:
步骤:
- 登录到你的Cloudflare账户,进入 防火墙(Firewall)页面。
- 在 防火墙规则(Firewall Rules)部分,点击 创建规则(Create a Rule)。
- 规则命名为 seo(自定义)。
- 在规则的条件部分(直接编辑自定义表达式),添加以下条件:
(cf.client.bot) or
(http.user_agent contains "duckduckgo") or
(http.user_agent contains "facebookexternalhit") or
(http.user_agent contains "Feedfetcher-Google") or
(http.user_agent contains "LinkedInBot") or
(http.user_agent contains "Mediapartners-Google") or
(http.user_agent contains "msnbot") or
(http.user_agent contains "Slackbot") or
(http.user_agent contains "TwitterBot") or
(http.user_agent contains "ia_archive") or
(http.user_agent contains "yahoo") or
(http.user_agent contains "Bingbot") or
(http.user_agent contains "Googlebot") or
(http.user_agent contains "Yahoo! Slurp") or
(http.user_agent contains "BingPreview") or
(http.user_agent contains "Sogou") or
(http.user_agent contains "Baiduspider") or
(http.user_agent contains "YandexBot") or
(http.user_agent contains "Exabot") or
(http.user_agent contains "SeznamBot") or
(http.user_agent contains "AhrefsBot") or
(http.user_agent contains "MJ12bot") or
(http.user_agent contains "Dotbot")
- 接下来,选择操作 跳过(Skip)。这意味着,当请求匹配上述用户代理(User-Agent)条件时,Cloudflare会通过此规则并不在执行之后的防火墙规则,允许合法的爬虫和搜索引擎访问你的资源。
- 设置 放置位置 为:
第一个
,这样此规则会在其他规则之前执行。 - 保存规则。
配置这个规则的目的就是确保像Googlebot、Bingbot、AhrefsBot等搜索引擎的合法爬虫能够顺利访问你网站的资源从而确保不影响到seo。需要注意的是User-Agent可能会随着各大搜索引擎厂商的政策的变化而改变,需要注意并及时更新你的规则。
2. 创建防盗链规则
接下来,我们创建一个名为 防盗链 的规则,用于限制非法网站对你资源的访问,确保只有经过授权的域名(如你自己的网站)能够引用你的网站资源。这样其它人想在自己网站引用你网站资源时就会被阻止并返回错误页面提示。只有当配置的合法Referer才能访问到这些资源。
步骤:
- 在 防火墙 页面,点击 创建规则(Create a Rule)。
- 为规则命名为 防盗链(自定义)。
- 在规则的条件部分(直接编辑自定义表达式),输入以下条件:
(http.request.uri.path contains "/wp-content/uploads/" and not http.referer contains "joyb.cc")
- 这条规则的意思是:当请求的路径包含
/wp-content/uploads/
(这是你网站上传的文件路径、即图片所在路径,根据你具体情况修改),并且 Referer 头部不包含joyb.cc
(即你的站点域名)时,拒绝访问请求。这将防止外部站点直接引用你的图片、视频等文件,但允许你自己的网站正常加载这些资源。 - 选择操作 阻止(Block)。这样,当请求匹配上述条件时,Cloudflare会阻止请求并停止评估其他规则。
- 设置 放置位置 为:
自定义
,并确保选择 SEO 规则之后。 - 保存规则。
这样,只有搜索引擎爬虫(如SEO)和你自己的网站能够访问这些图片等资源。
三、测试与验证
完成以上规则配置后,建议你进行一些测试,确保规则正常工作。
- 测试合法访问:通过你的网站访问上传的资源(如图片、视频),确保正常加载。
- 测试防盗链:尝试从其他域名(比如一个外部网站)直接引用你网站的资源,验证是否被成功阻止。
- 查看日志:在Cloudflare的防火墙日志中,查看被阻止的请求和被跳过的请求,确保规则按预期执行。
注意事项:
需要注意的是,尽管如此,客户端仍然可以通过修改 Referer
来绕过限制,直接访问并下载你的资源。因此,防盗链规则主要是防止其他网站未经授权引用你的资源,造成服务器带宽的浪费,但无法完全防止用户下载你网站上的图片和其他文件。
© 版权声明
THE END