Cloudflare Worker 无服务器追查 Git 仓库代码泄露

大部分 Git 平台,如 Github、Gitlab 等,会在打开仓库时自动渲染 README.md,而我们利用这一特性,通过对 README.md 中的图片访问日志加以记录,可以实现追查代码泄露的目的。

如果你还没有 Cloudflare 账号,可以申请一个

登录 Cloudflare 后,进入 Workers 页面,点击 KV。

添加一个 Cloudflare KV,起名 ref,用于记录访问记录。

创建 Cloudflare Worker,起名 img,用于记录请求信息,并转发图片资源请求。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
addEventListener('fetch', (event) => {
event.respondWith(handleRequest(event.request));
});
async function handleRequest(request) {
let response;
if (request.url.slice(-4).toLowerCase() === '.png') {
const ref = request.headers.get('referer');
if (ref) {
const time = new Date().toLocaleString('zh-CN', { timeZone: 'Asia/Shanghai' });
const ip = request.headers.get('CF-Connecting-IP');
const ua = request.headers.get('User-Agent');
const key = `Referer: ${ref}`;
const val = `时间: ${time}\nIP: ${ip}\nUA: ${ua}`;
await REF.put(key, val, { expirationTtl: 60 * 60 * 24 * 365 });
}
const redirect = new Request('https://cdn.jsdelivr.net/gh/imaegoo/image/1x1_ffffff00.png');
response = await fetch(redirect);
} else {
response = new Response('not found', { status: 404 });
}
return response;
}

将 KV ref 的命名空间绑定到 Worker img。

在仓库的 README.md 中插入图片

1
![](https://img.imaegoo.workers.dev/image.png)

到 KV ref 中查看效果

利用同样的思路和方法,我们还可以追查网站文章未经授权的转载,试试看!

Cloudflare Worker 无服务器追查 Git 仓库代码泄露

https://www.imaegoo.com/2021/git-tracking-image/

作者

iMaeGoo

发布于

2021-05-07

更新于

2021-05-07

许可协议

CC BY 4.0

评论