建站

腾讯云EdgeOne边缘函数和触发规则配置防盗链的方法 保护网站内容、防盗刷流量

2024年11月25日 · · · 本文共1501个字 · 预计阅读6分钟3988次已读
目录
文章目录隐藏
  1. 前言
  2. 使用方法
  3. 使用注意事项

前言

  网站使用了腾讯云EdgeOne(腾讯云边缘安全加速平台,简称:腾讯云EO),网站的静态资源文件(例如图片文件、模板JS和CSS)被盗刷流量,可通过腾讯云EO的边缘函数配置防盗链,保护网站内容、静态文件,防盗刷流量。

点此前往腾讯云EdgeOne边缘安全加速平台 首购一年36元

腾讯云EdgeOne边缘函数和触发规则配置防盗链的方法 保护网站内容、防盗刷流量

使用方法

一、在EO控制台找到函数管理,点击新建函数

腾讯云EdgeOne边缘函数和触发规则配置防盗链的方法 保护网站内容、防盗刷流量

二、点击防盗链,再点击下一步

腾讯云EdgeOne边缘函数和触发规则配置防盗链的方法 保护网站内容、防盗刷流量

三、随便输入函数名称,点击创建并部署,弹出小窗口点击暂不需要

腾讯云EdgeOne边缘函数和触发规则配置防盗链的方法 保护网站内容、防盗刷流量

四、在右上角点击编辑代码

腾讯云EdgeOne边缘函数和触发规则配置防盗链的方法 保护网站内容、防盗刷流量

五、复制以下函数代码。

const fileType = ['jpg', 'gif', 'png', 'webp', 'js', 'css', 'ico', 'woff', 'woff2'];
const host = ['https://修改成你的主域名( 不用加www. )'];

async function handleEvent(event) {
 const { request } = event;

 const urlInfo = new URL(request.url);

 // 不需要校验的文件类型,直接 passthouth
 const extMatch = urlInfo.pathname.match(/\.([^.]+)$/);
 const ext = extMatch ? extMatch[1] : '';
 if (!ext || !fileType.includes(ext)) {
  return;
 }

 const referer = request.headers.get('Referer');
 const blockRes = new Response(null, { status: 404 });

 // 无 Referer,响应 404
 if (!referer) {
  return event.respondWith(blockRes);
 }

 // 命中黑名单,响应 404
 if (host.some(domain => referer.includes(domain))) {
  console.log('referer block')
  return event.respondWith(blockRes);
 }

 // 校验通过,直接 passthrough
 return;
}

addEventListener('fetch', event => {
 event.passThroughOnException();
 handleEvent(event);
});

六、删除原函数代码,再粘贴代码,代码的第一行,修改或调整需要防盗链保护的文件后缀名称,代码第二行修改成你的主域名(需要添加https://,不用添加www. ,见下图 ),点击右上角的保存并部署

腾讯云EdgeOne边缘函数和触发规则配置防盗链的方法 保护网站内容、防盗刷流量

七、返回到函数管理的页面,点击新增触发规则

腾讯云EdgeOne边缘函数和触发规则配置防盗链的方法 保护网站内容、防盗刷流量

八、按照下图步骤配置触发条件,匹配类型选择文件后缀,右边的填写要保护的文件后缀,点击下面的+ And

腾讯云EdgeOne边缘函数和触发规则配置防盗链的方法 保护网站内容、防盗刷流量

九、按照下图步骤依次选择匹配类型运算符网站域名,最后点击确定保存触发规则。

腾讯云EdgeOne边缘函数和触发规则配置防盗链的方法 保护网站内容、防盗刷流量

十、打开网站随便选个图片复制图片链接,在浏览器无痕模式直接访问图片链接,页面显示404错误,边缘函数和触发规则配置成功。

腾讯云EdgeOne边缘函数和触发规则配置防盗链的方法 保护网站内容、防盗刷流量

使用注意事项

1、边缘函数的防盗链功能对主域名无效(例如https://bufanz.com),如果你的网站域名不带www.,建议全加上www.,可以使用301重定向,主域名跳转到www.二级域名。

腾讯云EdgeOne边缘函数和触发规则配置防盗链的方法 保护网站内容、防盗刷流量

2、要增加新的文件后缀,先修改函数代码,增加新的文件后缀(例如:mp4)。

腾讯云EdgeOne边缘函数和触发规则配置防盗链的方法 保护网站内容、防盗刷流量

2.1、同样在触发规则增加新的文件后缀。

腾讯云EdgeOne边缘函数和触发规则配置防盗链的方法 保护网站内容、防盗刷流量
14 条评论
  1. King2024-7-4 · 17:49

    你好,按你这个设置了,没有效果,我的网站就在我的信息里。

    • 不凡2024-7-6 · 22:29

      帮你看了下,直接打开图片URL,显示404,配置成功了。

  2. King2024-7-6 · 22:53

    是的,可以了,手动copy你的代码才行!用右上角那个(copy),不行。

    • 不凡2024-7-7 · 11:35

      有效果就好。代码区块右上角的copy,我这边测试了下,代码没有问题。

  3. 老白2024-11-26 · 12:49

    你换成函数了吗,之前好像是图文操作。这个函数可以加多个host不,或者用UA加白名单,想在qq中卡片打开有图片

    • 不凡2024-11-26 · 12:54

      应该可以,在函数代码的第二行,增加QQ的域名,但是我没测试过

      • 老白2024-11-26 · 13:29

        QQ的UA是不是也可以,我试试

        • 不凡2024-11-26 · 13:51

          不记得触发规则有没有UA相关,你找找看,如果没有,你可以提交工单咨询一下。
          文章中的函数代码,因为默认函数代码没有效果,我提交工单咨询,然后工程师帮我重新写了函数代码。

  4. 老白2024-11-26 · 13:30

    你的评论区这个表单输入,如果清除了cookie,谷歌浏览器就不会自动填入了

    • 不凡2024-11-26 · 13:43

      是的,浏览器不用每次关闭后自动清除数据,一段时间后手动清除缓存就是了

  5. 老白2024-11-26 · 13:49

    你试试我这个:https://test.xcbtmw.com/329.html。即便清除cookie后,也会触发自动填表单的

    • 不凡2024-11-26 · 13:56

      我搞错了,是浏览器的自动填表,不是cookie

  6. 老白2024-12-9 · 19:11

    触发条件,直接域名,然后URL Path=wp content就行。直接域名也可以🤣,类型你已经在函数中设置了

    • 不凡2024-12-9 · 19:26

      也可以,当时我有三个网站,不同的建站系统,目录不一样,所以我干脆用文件后缀方式,这是通用触发条件,不局限于wordpress、Z-Blog。

Powered by atecplugins.com