common: Update Anti-GFW

* Reduce the probability of false positives
This commit is contained in:
LittleChest 2025-07-26 14:23:40 +08:00
parent 2795686625
commit 31de466c22

View File

@ -12,17 +12,24 @@ export default async function handler(
headers.get("x-forwarded-for").split(",")[0].trim() || headers.get("x-forwarded-for").split(",")[0].trim() ||
headers.get("x-real-ip"); headers.get("x-real-ip");
const bodyHex = Array.from(new Uint8Array(await request.arrayBuffer()))
.map((b) => b.toString(16).padStart(2, "0"))
.join("");
// Anti-GFW // Anti-GFW
if ( if (
isIPv4(ip) &&
method === "POST" && method === "POST" &&
pathname === "/dns-query" && pathname === "/dns-query" &&
headers.get("content-type") === "application/dns-message" && headers.get("content-type") === "application/dns-message" &&
headers.get("accept") === "application/dns-message" && headers.get("accept") === "application/dns-message" &&
headers.get("content-length") === "29" && headers.get("content-length") === "29" &&
(headers.get("user-agent") === "Go-http-client/1.1" ||
headers.get("user-agent") === "Go-http-client/2.0") &&
(headers.get("accept-encoding") === "gzip, br" || (headers.get("accept-encoding") === "gzip, br" ||
headers.get("accept-encoding") === "gzip") && headers.get("accept-encoding") === "gzip") &&
(headers.get("user-agent") === "Go-http-client/1.1" || bodyHex.slice(4) ===
headers.get("user-agent") === "Go-http-client/2.0") "01100001000000000000077477697474657203636f6d0000010001"
) { ) {
return new Response(null, { status: 403 }); return new Response(null, { status: 403 });
} }