summaryrefslogtreecommitdiff
path: root/packages/backend/src/core/DownloadService.ts
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2025-07-28 19:28:01 +0000
committerdakkar <dakkar@thenautilus.net>2025-07-28 19:28:01 +0000
commitce3531ed96da39a4e62cb3651df0b8aee49b912f (patch)
tree4def24de3c615351ba6ab86390029b393a81fa2f /packages/backend/src/core/DownloadService.ts
parentmerge: Fix Postgres / TypeORM errors *FOR STABLE* (!1192) (diff)
parentfix DI error in HttpRequestService.ts (diff)
downloadsharkey-ce3531ed96da39a4e62cb3651df0b8aee49b912f.tar.gz
sharkey-ce3531ed96da39a4e62cb3651df0b8aee49b912f.tar.bz2
sharkey-ce3531ed96da39a4e62cb3651df0b8aee49b912f.zip
merge: Improve URL validation *FOR STABLE* (!1191)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1191 Approved-by: Hazelnoot <acomputerdog@gmail.com>
Diffstat (limited to 'packages/backend/src/core/DownloadService.ts')
-rw-r--r--packages/backend/src/core/DownloadService.ts4
1 files changed, 4 insertions, 0 deletions
diff --git a/packages/backend/src/core/DownloadService.ts b/packages/backend/src/core/DownloadService.ts
index cb5bdb6cb7..d1819f40a3 100644
--- a/packages/backend/src/core/DownloadService.ts
+++ b/packages/backend/src/core/DownloadService.ts
@@ -19,6 +19,7 @@ import type Logger from '@/logger.js';
import { bindThis } from '@/decorators.js';
import { renderInlineError } from '@/misc/render-inline-error.js';
+import { UtilityService } from '@/core/UtilityService.js';
@Injectable()
export class DownloadService {
@@ -30,6 +31,7 @@ export class DownloadService {
private httpRequestService: HttpRequestService,
private loggerService: LoggerService,
+ private readonly utilityService: UtilityService,
) {
this.logger = this.loggerService.getLogger('download');
}
@@ -38,6 +40,8 @@ export class DownloadService {
public async downloadUrl(url: string, path: string, options: { timeout?: number, operationTimeout?: number, maxSize?: number } = {} ): Promise<{
filename: string;
}> {
+ this.utilityService.assertUrl(url);
+
this.logger.debug(`Downloading ${chalk.cyan(url)} to ${chalk.cyanBright(path)} ...`);
const timeout = options.timeout ?? 30 * 1000;