diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 7a1b55de6..d9149880f 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.24.19", + "version": "2.24.20", "bin": "bin/hydrooj.js", "main": "dist/loader.js", "typings": "dist/loader.d.ts", diff --git a/packages/hydrooj/src/service/server.ts b/packages/hydrooj/src/service/server.ts index b4ac2d89f..00e81c973 100644 --- a/packages/hydrooj/src/service/server.ts +++ b/packages/hydrooj/src/service/server.ts @@ -520,9 +520,9 @@ export class Handler extends HandlerCommon { text: global.Hydro.lib[key].text, })); if (!this.noCheckPermView) this.checkPerm(PERM.PERM_VIEW); - if (this.request.method === 'POST' && this.request.headers.referer) { - const hostname = new URL(this.request.headers.referer).hostname; - if (hostname !== this.request.hostname) throw new CsrfTokenError(hostname); + if (this.request.method === 'post' && this.request.headers.referer !== '/') { + const host = new URL(this.request.headers.referer).host; + if (host !== this.request.host) throw new CsrfTokenError(host); } }