mirror of
https://github.com/movie-web/simple-proxy.git
synced 2025-09-13 16:43: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) => {
|
||||
// handle cors, if applicable
|
||||
@@ -16,6 +20,7 @@ export default defineEventHandler(async (event) => {
|
||||
});
|
||||
|
||||
// proxy
|
||||
cleanupHeadersBeforeProxy(event);
|
||||
await proxyRequest(event, destination, {
|
||||
fetchOptions: {
|
||||
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(
|
||||
headers: Headers,
|
||||
outputHeaders: Headers,
|
||||
@@ -44,3 +54,15 @@ export function getAfterResponseHeaders(
|
||||
'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