From d3afed694ab8de29e76c701597b7a9af27d59497 Mon Sep 17 00:00:00 2001 From: Johan Preynat Date: Fri, 21 Jun 2024 12:41:50 +0200 Subject: [PATCH 1/5] Use fnv1a instead of SHA256 to create images signatures --- bun.lockb | Bin 533583 -> 533954 bytes package.json | 1 + src/lib/images.ts | 12 ++++++------ 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/bun.lockb b/bun.lockb index 6ca5b0b3a7ae9a1496f5e1fded1a406ef73a7d6a..88d329f1ee82fdf13faeab2e18a26e5b8c8cca92 100755 GIT binary patch delta 95024 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%0DTJR_N(lQ>+nhL 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 Cnhbpa diff --git a/package.json b/package.json index b3d61f8b91..00d10df25a 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "@radix-ui/react-checkbox": "^1.0.4", "@radix-ui/react-popover": "^1.0.7", "@sentry/nextjs": "^7.94.1", + "@sindresorhus/fnv1a": "^3.1.0", "@tailwindcss/container-queries": "^0.1.1", "@tailwindcss/typography": "^0.5.10", "@upstash/redis": "^1.27.1", diff --git a/src/lib/images.ts b/src/lib/images.ts index 67651ed9be..9fdfcc6a06 100644 --- a/src/lib/images.ts +++ b/src/lib/images.ts @@ -1,5 +1,7 @@ import 'server-only'; +import fnv1a from '@sindresorhus/fnv1a'; + import { noCacheFetchOptions } from '@/lib/cache/http'; import { rootUrl } from './links'; @@ -201,12 +203,10 @@ function stringifyOptions(options: CloudflareImageOptions): string { }, ''); } +// Reused buffer for FNV-1a hashing +const fnv1aUtf8Buffer = new Uint8Array(100); + async function generateSignature(input: string): Promise { const all = [input, process.env.GITBOOK_IMAGE_RESIZE_SIGNING_KEY].filter(Boolean).join(':'); - const hash = await crypto.subtle.digest('SHA-256', new TextEncoder().encode(all)); - - // Convert ArrayBuffer to hex string - const hashArray = Array.from(new Uint8Array(hash)); - const hashHex = hashArray.map((b) => b.toString(16).padStart(2, '0')).join(''); - return hashHex; + return fnv1a(all, { utf8Buffer: fnv1aUtf8Buffer }).toString(16); } From 2a7104e814000a4ef93cddfe545048ba5ec8bcf4 Mon Sep 17 00:00:00 2001 From: Johan Preynat Date: Sat, 22 Jun 2024 14:38:44 +0200 Subject: [PATCH 2/5] Add backward compatibility logic --- src/app/(global)/~gitbook/image/route.ts | 5 +++- src/lib/images.ts | 33 +++++++++++++++++++++--- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/src/app/(global)/~gitbook/image/route.ts b/src/app/(global)/~gitbook/image/route.ts index 81f9efb55f..f21cf7503d 100644 --- a/src/app/(global)/~gitbook/image/route.ts +++ b/src/app/(global)/~gitbook/image/route.ts @@ -13,6 +13,9 @@ export const runtime = 'edge'; export async function GET(request: NextRequest) { let urlParam = request.nextUrl.searchParams.get('url'); const signature = request.nextUrl.searchParams.get('sign'); + // The current signature algorithm sets version as 1, but we need to support the older version as well + // for previously generated content. In this case, we default to version 0. + const signatureVersion = (request.nextUrl.searchParams.get('sv') as '1') || '0'; if (!urlParam || !signature) { return new Response('Missing url/sign parameters', { status: 400 }); } @@ -25,7 +28,7 @@ export async function GET(request: NextRequest) { } // Verify the signature - const verified = await verifyImageSignature(url, signature); + const verified = await verifyImageSignature(url, { signature, version: signatureVersion }); if (!verified) { return new Response(`Invalid signature "${signature ?? ''}" for "${url}"`, { status: 400 }); } diff --git a/src/lib/images.ts b/src/lib/images.ts index 9fdfcc6a06..cd414da271 100644 --- a/src/lib/images.ts +++ b/src/lib/images.ts @@ -75,7 +75,7 @@ export async function getResizedImageURL( return null; } - const signature = await generateSignature(input); + const signature = await generateSignatureV1(input); return (options) => { const url = new URL('/~gitbook/image', rootUrl()); @@ -95,6 +95,7 @@ export async function getResizedImageURL( } url.searchParams.set('sign', signature); + url.searchParams.set('sv', '1'); return url.toString(); }; @@ -103,8 +104,12 @@ export async function getResizedImageURL( /** * Verify a signature of an image URL */ -export async function verifyImageSignature(input: string, signature: string): Promise { - const expectedSignature = await generateSignature(input); +export async function verifyImageSignature( + input: string, + { signature, version }: { signature: string; version: '1' | '0' }, +): Promise { + const expectedSignature = + version === '1' ? await generateSignatureV1(input) : await generateSignature(input); return expectedSignature === signature; } @@ -206,7 +211,27 @@ function stringifyOptions(options: CloudflareImageOptions): string { // Reused buffer for FNV-1a hashing const fnv1aUtf8Buffer = new Uint8Array(100); -async function generateSignature(input: string): Promise { +/** + * New and faster algorithm to generate a signature for an image. + * When setting it in a URL, we use version '1' for the 'sv' querystring parameneter + * to know that it was the algorithm that was used. + */ +async function generateSignatureV1(input: string): Promise { const all = [input, process.env.GITBOOK_IMAGE_RESIZE_SIGNING_KEY].filter(Boolean).join(':'); return fnv1a(all, { utf8Buffer: fnv1aUtf8Buffer }).toString(16); } + +/** + * Initial algorithm used to generate a signature for an image. It didn't use any versioning. + * We still need it to validate older signatures that were generated without versioning + * but still exist in previously generated and cached content. + */ +async function generateSignature(input: string): Promise { + const all = [input, process.env.GITBOOK_IMAGE_RESIZE_SIGNING_KEY].filter(Boolean).join(':'); + const hash = await crypto.subtle.digest('SHA-256', new TextEncoder().encode(all)); + + // Convert ArrayBuffer to hex string + const hashArray = Array.from(new Uint8Array(hash)); + const hashHex = hashArray.map((b) => b.toString(16).padStart(2, '0')).join(''); + return hashHex; +} From b5bb7c6fc8aee7cab327aea7535414149ad66b05 Mon Sep 17 00:00:00 2001 From: Johan Preynat Date: Mon, 24 Jun 2024 13:02:20 +0200 Subject: [PATCH 3/5] Increase images buffer size --- src/lib/images.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/images.ts b/src/lib/images.ts index cd414da271..b6b95a5d9f 100644 --- a/src/lib/images.ts +++ b/src/lib/images.ts @@ -209,7 +209,7 @@ function stringifyOptions(options: CloudflareImageOptions): string { } // Reused buffer for FNV-1a hashing -const fnv1aUtf8Buffer = new Uint8Array(100); +const fnv1aUtf8Buffer = new Uint8Array(512); /** * New and faster algorithm to generate a signature for an image. From fe1ee283639504dee6141a16359821686190afea Mon Sep 17 00:00:00 2001 From: Johan Preynat Date: Mon, 24 Jun 2024 13:02:50 +0200 Subject: [PATCH 4/5] Rename legacy method to generateSignatureV0 --- src/lib/images.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/images.ts b/src/lib/images.ts index b6b95a5d9f..5b86bc1731 100644 --- a/src/lib/images.ts +++ b/src/lib/images.ts @@ -109,7 +109,7 @@ export async function verifyImageSignature( { signature, version }: { signature: string; version: '1' | '0' }, ): Promise { const expectedSignature = - version === '1' ? await generateSignatureV1(input) : await generateSignature(input); + version === '1' ? await generateSignatureV1(input) : await generateSignatureV0(input); return expectedSignature === signature; } @@ -226,7 +226,7 @@ async function generateSignatureV1(input: string): Promise { * We still need it to validate older signatures that were generated without versioning * but still exist in previously generated and cached content. */ -async function generateSignature(input: string): Promise { +async function generateSignatureV0(input: string): Promise { const all = [input, process.env.GITBOOK_IMAGE_RESIZE_SIGNING_KEY].filter(Boolean).join(':'); const hash = await crypto.subtle.digest('SHA-256', new TextEncoder().encode(all)); From 2b766d78e57488d9695759df9dae78cef9c79e59 Mon Sep 17 00:00:00 2001 From: Johan Preynat Date: Mon, 24 Jun 2024 13:18:23 +0200 Subject: [PATCH 5/5] Update comment --- src/lib/images.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/images.ts b/src/lib/images.ts index 5b86bc1731..bb20bac162 100644 --- a/src/lib/images.ts +++ b/src/lib/images.ts @@ -222,7 +222,7 @@ async function generateSignatureV1(input: string): Promise { } /** - * Initial algorithm used to generate a signature for an image. It didn't use any versioning. + * Initial algorithm used to generate a signature for an image. It didn't use any versioning in the URL. * We still need it to validate older signatures that were generated without versioning * but still exist in previously generated and cached content. */