summary refs log tree commit diff
path: root/src/api
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2025-07-04 09:10:42 +0200
committerRory& <root@rory.gay>2025-07-06 18:03:17 +0200
commit2e196573ea1e257fc9266d6c63289c51fbaa4e12 (patch)
treeb92350a789b9e6ba29a4945725e126fdb1439590 /src/api
parentuse prototype when signing message (diff)
downloadserver-ts-2e196573ea1e257fc9266d6c63289c51fbaa4e12.tar.xz
Make IP/user-agent validation in CDN work
Diffstat (limited to 'src/api')
-rw-r--r--src/api/routes/attachments/refresh-urls.ts10
-rw-r--r--src/api/routes/channels/#channel_id/messages/#message_id/index.ts2
-rw-r--r--src/api/routes/channels/#channel_id/messages/index.ts17
3 files changed, 22 insertions, 7 deletions
diff --git a/src/api/routes/attachments/refresh-urls.ts b/src/api/routes/attachments/refresh-urls.ts

index 78f6b7fc3..0ad86e5c3 100644 --- a/src/api/routes/attachments/refresh-urls.ts +++ b/src/api/routes/attachments/refresh-urls.ts
@@ -17,7 +17,7 @@ */ import { route } from "@spacebar/api"; -import { RefreshUrlsRequestSchema, resignUrl } from "@spacebar/util"; +import { RefreshUrlsRequestSchema, getUrlSignature, NewUrlSignatureData } from "@spacebar/util"; import { Request, Response, Router } from "express"; const router = Router(); @@ -37,7 +37,13 @@ router.post( async (req: Request, res: Response) => { const { attachment_urls } = req.body as RefreshUrlsRequestSchema; - const refreshed_urls = attachment_urls.map(url => resignUrl(url, req)); + const refreshed_urls = attachment_urls.map(url => { + return getUrlSignature(new NewUrlSignatureData({ + url: url, + ip: req.ip, + userAgent: req.headers["user-agent"] as string + })).applyToUrl(url).toString(); + }); return res.status(200).json({ refreshed_urls, diff --git a/src/api/routes/channels/#channel_id/messages/#message_id/index.ts b/src/api/routes/channels/#channel_id/messages/#message_id/index.ts
index 5388c3638..d91c705d5 100644 --- a/src/api/routes/channels/#channel_id/messages/#message_id/index.ts +++ b/src/api/routes/channels/#channel_id/messages/#message_id/index.ts
@@ -30,7 +30,7 @@ import { emitEvent, getPermission, getRights, - uploadFile, Config, getUrlSignature, + uploadFile } from "@spacebar/util"; import { Request, Response, Router } from "express"; import { HTTPError } from "lambert-server"; diff --git a/src/api/routes/channels/#channel_id/messages/index.ts b/src/api/routes/channels/#channel_id/messages/index.ts
index 2e1e3a284..743bc07e8 100644 --- a/src/api/routes/channels/#channel_id/messages/index.ts +++ b/src/api/routes/channels/#channel_id/messages/index.ts
@@ -35,8 +35,8 @@ import { emitEvent, getPermission, isTextChannel, - resignUrl, - uploadFile, + getUrlSignature, + uploadFile, NewUrlSignatureData, } from "@spacebar/util"; import { Request, Response, Router } from "express"; import { HTTPError } from "lambert-server"; @@ -210,8 +210,17 @@ router.get( y.proxy_url = url.toString(); - y.proxy_url = resignUrl(y.proxy_url, req); - y.url = resignUrl(y.url, req); + y.proxy_url = getUrlSignature(new NewUrlSignatureData({ + url: y.proxy_url, + userAgent: req.headers["user-agent"], + ip: req.ip, + })).applyToUrl(y.proxy_url).toString(); + + y.url = getUrlSignature(new NewUrlSignatureData({ + url: y.url, + userAgent: req.headers["user-agent"], + ip: req.ip, + })).applyToUrl(y.url).toString(); }); /**