代码如下,具有防跨站和网址加密功能。你问我用这个有什么意义,主要是可以套国内的CDN呀!
具体使用使用方式参阅我的个人博客:https://www.430074.xyz/posts/workers-jsdeliver.html
- // 允许的 CORS 来源
const ALLOWED_REFERER = [
/^https?:\/\/localhost(:\d*)?\/.*$/,
/^https?:\/\/([\w-]+\.)*w3schools\.com(:\d*)?\/.*$/
];
// 是否允许所有无 Referer 请求
const ALLOW_NO_ORIGIN = true;
//输入你的密码,密码加在path后面做SHA-1运算
const MYSECRET = "123456";
function validateReferer(req) {
const referer = req.headers.get('Referer');
if (referer) {
for (const el of ALLOWED_REFERER) {
if (el.exec(referer)) {
return true;
}
}
return false;
}
return ALLOW_NO_ORIGIN; // 是否拒绝所有无 Referer 请求
}
async function handle(request) {
let url = new URL(request.url);
const acceptType = request.headers.get('Accept');
const hash_request = url.pathname.split("/")[1];
const path_real = url.pathname.substring(hash_request.length + 1, url.pathname.length);
url.hostname = "cdn.jsdelivr.net";
url.pathname = path_real;
if (!(await validatePath(hash_request, path_real))) {
return new Response('Error Hash', {
status: 403
});
}
if (!(validateReferer(request))) {
return new Response('Blocked Host', {
status: 403
});
}
return await fetch(url);
}
async function validatePath(hash_request, path_real) {
const message = new TextEncoder().encode(path_real + MYSECRET);
const myDigest = await crypto.subtle.digest('SHA-1', message);
const hashArray = Array.from(new Uint8Array(myDigest));
const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
return (hashHex == hash_request);
}
addEventListener('fetch', event => {
event.respondWith(handle(event.request));
})
热议
推荐楼 YorkZhao 2022-5-22 11:46:34
gcore.jsdelivr.net
cf.jsdelivr.net
fastly.jsdelivr.net
好了楼主退下吧
3楼 gogoo2 2022-5-22 11:51:46
有没有国内cdn的呢?速度要快哦。
4楼 dole 2022-5-22 11:53:27
马克
5楼 asdii 2022-5-22 12:36:42
感谢分享
6楼 jarmoku 3小时前
有没有国内cdn的呢?速度要快哦。
7楼 haozi 3小时前
worker那速度,整个小鸡不香吗
8楼 jarmoku 3小时前
worker那速度,整个小鸡不香吗
9楼 haozi 3小时前
你不会套国内cdn吗?
小鸡不能套cdn吗?worker那线路,套了又能快到哪去?
10楼 jarmoku 2小时前
小鸡不能套cdn吗?worker那线路,套了又能快到哪去?
12楼 jarmoku 2小时前
SHA1也太麻烦了,workers现在和国内连通性不好,也没必要搞成这样吧……
要不是我的workers次数被刷完了,我也不想这样。
今天就有一个没加密的:https://hostloc.com/forum.php?mod=viewthread&tid=1029981&highlight=CF%2Bworkers
13楼 SeegerNew 2小时前
要不是我的workers次数被刷完了,我也不想这样。
今天就有一个没加密的:https://hostloc.com/forum.php? ...
大佬,有没加密的版本吗?我倒是不在乎会不会刷完,简单能用就行,谢谢!
14楼 jarmoku 11分钟前
大佬,有没加密的版本吗?我倒是不在乎会不会刷完,简单能用就行,谢谢! ...
申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。
谷姐靓号网



评论前必须登录!
立即登录 注册