Set origin based on browser origin header

This commit is contained in:
regalijan 2023-10-19 16:50:17 -04:00
parent 45e05d78c7
commit e0f2a79d70
Signed by: regalijan
GPG Key ID: 5D4196DA269EF520
2 changed files with 6 additions and 4 deletions

View File

@ -37,6 +37,9 @@ export async function onRequestPost(context: RequestContext) {
if (!success) return errorResponse("Captcha test failed", 403); if (!success) return errorResponse("Captcha test failed", 403);
} }
const origin = context.request.headers.get("Origin");
if (!origin) return errorResponse("No origin header", 400);
if (bypass && !(context.data.current_user?.permissions & (1 << 5))) if (bypass && !(context.data.current_user?.permissions & (1 << 5)))
return errorResponse("Bypass directive cannot be used", 403); return errorResponse("Bypass directive cannot be used", 403);
@ -178,6 +181,7 @@ export async function onRequestPost(context: RequestContext) {
`t/${fileUploadKey}`, `t/${fileUploadKey}`,
file.size, file.size,
fileExten, fileExten,
origin,
), ),
); );
} }

View File

@ -17,6 +17,7 @@ export async function GenerateUploadURL(
path: string, path: string,
size: number, size: number,
fileExt: string, fileExt: string,
origin: string,
): Promise<string> { ): Promise<string> {
const accessToken = await GetAccessToken(env); const accessToken = await GetAccessToken(env);
const contentTypes: { [k: string]: string } = { const contentTypes: { [k: string]: string } = {
@ -43,10 +44,7 @@ export async function GenerateUploadURL(
{ {
headers: { headers: {
authorization: `Bearer ${accessToken}`, authorization: `Bearer ${accessToken}`,
origin: origin,
typeof env.LOCAL === "undefined"
? "https://carcrushers.cc"
: "http://localhost:8788",
"x-upload-content-type": contentTypes[fileExt], "x-upload-content-type": contentTypes[fileExt],
"x-upload-content-length": size.toString(), "x-upload-content-length": size.toString(),
}, },