fix: return 404 for invalid shared link pages (#19493)

This commit is contained in:
Jason Rasmussen 2025-06-24 11:37:14 -04:00 committed by GitHub
parent 2e13543d5d
commit 88b8afb8d6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 22 additions and 24 deletions

View file

@ -78,36 +78,24 @@ export class ApiService {
return next();
}
const targets = [
{
regex: /^\/share\/(.+)$/,
onMatch: async (matches: RegExpMatchArray) => {
const key = matches[1];
const auth = await this.authService.validateSharedLink(key);
return this.sharedLinkService.getMetadataTags(auth);
},
},
];
let status = 200;
let html = index;
try {
for (const { regex, onMatch } of targets) {
const matches = request.url.match(regex);
if (matches) {
const meta = await onMatch(matches);
if (meta) {
html = render(index, meta);
}
break;
const shareMatches = request.url.match(/^\/share\/(.+)$/);
if (shareMatches) {
try {
const key = shareMatches[1];
const auth = await this.authService.validateSharedLink(key);
const meta = await this.sharedLinkService.getMetadataTags(auth);
if (meta) {
html = render(index, meta);
}
} catch {
status = 404;
}
} catch {
// nothing to do here
}
res.type('text/html').header('Cache-Control', 'no-store').send(html);
res.status(status).type('text/html').header('Cache-Control', 'no-store').send(html);
};
}
}