Merge remote-tracking branch 'upstream/main'

This commit is contained in:
Hk-Gosuto 2024-06-26 00:58:44 +00:00
commit f260f11755
4 changed files with 21 additions and 6 deletions

View File

@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2023 Zhang Yifei Copyright (c) 2023-2024 Zhang Yifei
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@ -9,6 +9,14 @@ const mergedAllowedWebDavEndpoints = [
...config.allowedWebDevEndpoints, ...config.allowedWebDevEndpoints,
].filter((domain) => Boolean(domain.trim())); ].filter((domain) => Boolean(domain.trim()));
const normalizeUrl = (url: string) => {
try {
return new URL(url);
} catch (err) {
return null;
}
};
async function handle( async function handle(
req: NextRequest, req: NextRequest,
{ params }: { params: { path: string[] } }, { params }: { params: { path: string[] } },
@ -24,9 +32,15 @@ async function handle(
// Validate the endpoint to prevent potential SSRF attacks // Validate the endpoint to prevent potential SSRF attacks
if ( if (
!mergedAllowedWebDavEndpoints.some((allowedEndpoint) => !endpoint ||
endpoint?.startsWith(allowedEndpoint), !mergedAllowedWebDavEndpoints.some((allowedEndpoint) => {
) const normalizedAllowedEndpoint = normalizeUrl(allowedEndpoint);
const normalizedEndpoint = normalizeUrl(endpoint as string);
return normalizedEndpoint &&
normalizedEndpoint.hostname === normalizedAllowedEndpoint?.hostname &&
normalizedEndpoint.pathname.startsWith(normalizedAllowedEndpoint.pathname);
})
) { ) {
return NextResponse.json( return NextResponse.json(
{ {

View File

@ -188,6 +188,7 @@ const anthropicModels = [
"claude-3-sonnet-20240229", "claude-3-sonnet-20240229",
"claude-3-opus-20240229", "claude-3-opus-20240229",
"claude-3-haiku-20240307", "claude-3-haiku-20240307",
"claude-3-5-sonnet-20240620",
]; ];
export const DEFAULT_MODELS = [ export const DEFAULT_MODELS = [

View File

@ -9,7 +9,7 @@
}, },
"package": { "package": {
"productName": "NextChat", "productName": "NextChat",
"version": "2.12.3" "version": "2.12.4"
}, },
"tauri": { "tauri": {
"allowlist": { "allowlist": {