Fix FilesBlock: external URLs bypass /cms-files proxy
getCmsFileUrl() returned /cms-files?src=... for all URLs including external ones. resolveCmsSource() rejects foreign hosts (SSRF guard), so external file links 404'd. External http(s) URLs now returned directly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -62,8 +62,13 @@ export interface CmsFileUrlOptions {
|
|||||||
/**
|
/**
|
||||||
* Lokale Datei-URL: /cms-files?src=…&name=…&dl=…
|
* Lokale Datei-URL: /cms-files?src=…&name=…&dl=…
|
||||||
* `src` = volle Datei-URL oder CMS-Asset-Pfad (`/api/assets/...`).
|
* `src` = volle Datei-URL oder CMS-Asset-Pfad (`/api/assets/...`).
|
||||||
|
* Externe http(s)-URLs werden direkt zurückgegeben — der /cms-files-Proxy
|
||||||
|
* würde sie wegen SSRF-Schutz sowieso ablehnen.
|
||||||
*/
|
*/
|
||||||
export function getCmsFileUrl(src: string, opts: CmsFileUrlOptions = {}): string {
|
export function getCmsFileUrl(src: string, opts: CmsFileUrlOptions = {}): string {
|
||||||
|
if (src.startsWith('http://') || src.startsWith('https://')) {
|
||||||
|
return src;
|
||||||
|
}
|
||||||
const params = new URLSearchParams();
|
const params = new URLSearchParams();
|
||||||
params.set('src', src);
|
params.set('src', src);
|
||||||
if (opts.filename) params.set('name', opts.filename);
|
if (opts.filename) params.set('name', opts.filename);
|
||||||
|
|||||||
Reference in New Issue
Block a user