Referer anti-leeching technology is a strategy adopted by websites to protect their resources and prevent other websites from illegally using their content. This example determines the request sources by checking the Referer
field in the HTTP
request header. You can flexibly customize the matching rules for this Referer
. If the Referer
does not exist or does not match the allowed domain list, the Edge functions will reject the request and return a 403 status code.
async function handleRequest(request) {
const referer = request.headers.get('Referer');
if (!referer) {
return new Response(null, { status: 403 });
}
const urlInfo = new URL(request.url);
const refererRegExp = new RegExp(`^https?:\\/\\/${urlInfo.hostname}\\/t-[0-9a-z]{10}\\/.*`)
if (!refererRegExp.test(referer)) {
return new Response(null, { status: 403 });
}
return fetch(request);
}
addEventListener('fetch', event => {
event.passThroughOnException();
event.respondWith(handleRequest(event.request));
});
Example Preview
Enter the URL that matches the Edge function triggering rules in the address bar of the browser on the PC end and mobile end (e.g., https://example.com/images/ef-1.jpeg
) to preview the example effect.
HTTP request header Referer
is https://example.com/t-0123456789/page, and the Edge function responds normally to the image.
HTTP request header Referer
is not on the allowlist, and the Edge function identifies it as a leeching link and responds with a 403 status code.
Related References
Was this page helpful?