mirror of
https://github.com/movie-web/simple-proxy.git
synced 2025-09-13 18:13:26 +00:00
remove cf internal headers before proxying
This commit is contained in:
@@ -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);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user