mirror of
https://github.com/sussy-code/sudo-proxy.git
synced 2026-04-27 11:32:55 +00:00
remove cf internal headers before proxying
This commit is contained in:
parent
714b91ef8c
commit
f890f59d43
2 changed files with 28 additions and 1 deletions
|
|
@ -1,4 +1,8 @@
|
||||||
import { getProxyHeaders, getAfterResponseHeaders } from '@/utils/headers';
|
import {
|
||||||
|
getProxyHeaders,
|
||||||
|
getAfterResponseHeaders,
|
||||||
|
cleanupHeadersBeforeProxy,
|
||||||
|
} from '@/utils/headers';
|
||||||
|
|
||||||
export default defineEventHandler(async (event) => {
|
export default defineEventHandler(async (event) => {
|
||||||
// handle cors, if applicable
|
// handle cors, if applicable
|
||||||
|
|
@ -16,6 +20,7 @@ export default defineEventHandler(async (event) => {
|
||||||
});
|
});
|
||||||
|
|
||||||
// proxy
|
// proxy
|
||||||
|
cleanupHeadersBeforeProxy(event);
|
||||||
await proxyRequest(event, destination, {
|
await proxyRequest(event, destination, {
|
||||||
fetchOptions: {
|
fetchOptions: {
|
||||||
redirect: 'follow',
|
redirect: 'follow',
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,13 @@
|
||||||
|
import { H3Event } from 'h3';
|
||||||
|
|
||||||
|
const blacklistedHeaders = [
|
||||||
|
'cf-connecting-ip',
|
||||||
|
'cf-worker',
|
||||||
|
'cf-ray',
|
||||||
|
'cf-visitor',
|
||||||
|
'cf-ew-via',
|
||||||
|
];
|
||||||
|
|
||||||
function copyHeader(
|
function copyHeader(
|
||||||
headers: Headers,
|
headers: Headers,
|
||||||
outputHeaders: Headers,
|
outputHeaders: Headers,
|
||||||
|
|
@ -44,3 +54,15 @@ export function getAfterResponseHeaders(
|
||||||
'X-Final-Destination': finalUrl,
|
'X-Final-Destination': finalUrl,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function removeHeadersFromEvent(event: H3Event, key: string) {
|
||||||
|
const normalizedKey = key.toLowerCase();
|
||||||
|
if (event.node.req.headers[normalizedKey])
|
||||||
|
delete event.node.req.headers[normalizedKey];
|
||||||
|
}
|
||||||
|
|
||||||
|
export function cleanupHeadersBeforeProxy(event: H3Event) {
|
||||||
|
blacklistedHeaders.forEach((key) => {
|
||||||
|
removeHeadersFromEvent(event, key);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue