Browse Source

fix(proxy): remove prohibited CF-* headers to prevent Cloudflare Error 1000

master
mortezaei 4 days ago
parent
commit
d351f32b25
  1. 21
      src/app/api/proxy/route.ts

21
src/app/api/proxy/route.ts

@ -17,14 +17,6 @@ const REQUEST_HEADERS_TO_FORWARD = [
"x-csrftoken",
"x-requested-with",
"x-xsrf-token",
"cf-connecting-ip",
"cf-ipcountry",
"cf-ray",
"cf-visitor",
"x-real-ip",
"x-forwarded-for",
"x-forwarded-proto",
"x-forwarded-host",
];
const RESPONSE_HEADERS_TO_DROP = [
@ -174,24 +166,15 @@ function getRequestHeaders(request: NextRequest, targetUrl: URL) {
headers.set("referer", `${targetUrl.origin}/`);
headers.set("user-agent", "dart:io");
// Forward real client IP and Geo headers to Django backend
// Forward standard X-Forwarded-For if client IP is available
const clientIp =
request.headers.get("cf-connecting-ip") ||
request.headers.get("x-real-ip") ||
request.headers.get("x-forwarded-for")?.split(",")[0]?.trim();
if (clientIp) {
headers.set("cf-connecting-ip", clientIp);
headers.set("x-real-ip", clientIp);
if (!headers.has("x-forwarded-for")) {
if (clientIp && !headers.has("x-forwarded-for")) {
headers.set("x-forwarded-for", clientIp);
}
}
const cfCountry = request.headers.get("cf-ipcountry");
if (cfCountry) {
headers.set("cf-ipcountry", cfCountry);
}
return headers;
}

Loading…
Cancel
Save