From b2725e5acf6c2786a864eabd62158dd325e639bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20=C5=A0korpil?= Date: Mon, 18 Apr 2022 22:18:43 +0200 Subject: [PATCH] Added nodeinfo content length limit (5k) solving issues with global redirects to endless streams --- application/src/Fediverse/NodeInfo/retrieveNodeInfo.ts | 3 +-- application/src/Fediverse/NodeInfo/retrieveWellKnown.ts | 7 +++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/application/src/Fediverse/NodeInfo/retrieveNodeInfo.ts b/application/src/Fediverse/NodeInfo/retrieveNodeInfo.ts index 4e87436..ebbc03d 100644 --- a/application/src/Fediverse/NodeInfo/retrieveNodeInfo.ts +++ b/application/src/Fediverse/NodeInfo/retrieveNodeInfo.ts @@ -27,8 +27,7 @@ export type NodeInfo = z.infer export const retrieveNodeInfo = async (url: string): Promise => { console.info('Retrieving node info', { url: url }) const nodeInfoResponse = await axios.get(url, { - timeout: getDefaultTimeoutMilliseconds(), - maxContentLength: 5000 + timeout: getDefaultTimeoutMilliseconds() }) assertSuccessJsonResponse(nodeInfoResponse) return schema.parse(nodeInfoResponse.data) diff --git a/application/src/Fediverse/NodeInfo/retrieveWellKnown.ts b/application/src/Fediverse/NodeInfo/retrieveWellKnown.ts index 26088ab..7b0f07c 100644 --- a/application/src/Fediverse/NodeInfo/retrieveWellKnown.ts +++ b/application/src/Fediverse/NodeInfo/retrieveWellKnown.ts @@ -14,10 +14,13 @@ const wellKnownSchema = z.object({ export type WellKnown = z.infer -export const retrieveWellKnown = async (domain:string):Promise => { +export const retrieveWellKnown = async (domain: string): Promise => { console.info('Retrieving well known', { domain: domain }) const wellKnownUrl = `https://${domain}/.well-known/nodeinfo` - const wellKnownResponse = await axios.get(wellKnownUrl, { timeout: getDefaultTimeoutMilliseconds() }) + const wellKnownResponse = await axios.get(wellKnownUrl, { + timeout: getDefaultTimeoutMilliseconds(), + maxContentLength: 5000 + }) assertSuccessJsonResponse(wellKnownResponse) return wellKnownSchema.parse(wellKnownResponse.data) }