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

使用方法
一、在EO控制台找到函数管理
,点击新建函数
。

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

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

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

五、复制以下函数代码。
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.
,见下图 ),点击右上角的保存并部署
。

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

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

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

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

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

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

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

你好,按你这个设置了,没有效果,我的网站就在我的信息里。
帮你看了下,直接打开图片URL,显示404,配置成功了。
是的,可以了,手动copy你的代码才行!用右上角那个(copy),不行。
有效果就好。代码区块右上角的copy,我这边测试了下,代码没有问题。
你换成函数了吗,之前好像是图文操作。这个函数可以加多个host不,或者用UA加白名单,想在qq中卡片打开有图片
应该可以,在函数代码的第二行,增加QQ的域名,但是我没测试过
QQ的UA是不是也可以,我试试
不记得触发规则有没有UA相关,你找找看,如果没有,你可以提交工单咨询一下。
文章中的函数代码,因为默认函数代码没有效果,我提交工单咨询,然后工程师帮我重新写了函数代码。
你的评论区这个表单输入,如果清除了cookie,谷歌浏览器就不会自动填入了
是的,浏览器不用每次关闭后自动清除数据,一段时间后手动清除缓存就是了
你试试我这个:https://test.xcbtmw.com/329.html。即便清除cookie后,也会触发自动填表单的
我搞错了,是浏览器的自动填表,不是cookie
触发条件,直接域名,然后URL Path=wp content就行。直接域名也可以🤣,类型你已经在函数中设置了
也可以,当时我有三个网站,不同的建站系统,目录不一样,所以我干脆用文件后缀方式,这是通用触发条件,不局限于wordpress、Z-Blog。