summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/web/ClientServerService.ts
diff options
context:
space:
mode:
authormisskey-release-bot[bot] <157398866+misskey-release-bot[bot]@users.noreply.github.com>2025-09-08 12:29:29 +0000
committerGitHub <noreply@github.com>2025-09-08 12:29:29 +0000
commit1eab314b17525987835ab495a94c705abd6ca78f (patch)
treebf6e8f3ce5c75c17bfdca9e38cc8316a139087da /packages/backend/src/server/web/ClientServerService.ts
parentMerge pull request #16335 from misskey-dev/develop (diff)
parentRelease: 2025.9.0 (diff)
downloadmisskey-1eab314b17525987835ab495a94c705abd6ca78f.tar.gz
misskey-1eab314b17525987835ab495a94c705abd6ca78f.tar.bz2
misskey-1eab314b17525987835ab495a94c705abd6ca78f.zip
Merge pull request #16521 from misskey-dev/develop
Release: 2025.9.0
Diffstat (limited to 'packages/backend/src/server/web/ClientServerService.ts')
-rw-r--r--packages/backend/src/server/web/ClientServerService.ts19
1 files changed, 18 insertions, 1 deletions
diff --git a/packages/backend/src/server/web/ClientServerService.ts b/packages/backend/src/server/web/ClientServerService.ts
index b515a0c0c8..3cd83efa1a 100644
--- a/packages/backend/src/server/web/ClientServerService.ts
+++ b/packages/backend/src/server/web/ClientServerService.ts
@@ -201,6 +201,8 @@ export class ClientServerService {
@bindThis
public createServer(fastify: FastifyInstance, options: FastifyPluginOptions, done: (err?: Error) => void) {
+ const configUrl = new URL(this.config.url);
+
fastify.register(fastifyView, {
root: _dirname + '/views',
engine: {
@@ -239,7 +241,6 @@ export class ClientServerService {
done();
});
} else {
- const configUrl = new URL(this.config.url);
const urlOriginWithoutPort = configUrl.origin.replace(/:\d+$/, '');
const port = (process.env.VITE_PORT ?? '5173');
@@ -887,6 +888,22 @@ export class ClientServerService {
[, ...target.split('/').filter(x => x), ...source.split('/').filter(x => x).splice(depth)].join('/');
fastify.get('/flush', async (request, reply) => {
+ let sendHeader = true;
+
+ if (request.headers['origin']) {
+ const originURL = new URL(request.headers['origin']);
+ if (originURL.protocol !== 'https:') { // Clear-Site-Data only supports https
+ sendHeader = false;
+ }
+ if (originURL.host !== configUrl.host) {
+ sendHeader = false;
+ }
+ }
+
+ if (sendHeader) {
+ reply.header('Clear-Site-Data', '"*"');
+ }
+ reply.header('Set-Cookie', 'http-flush-failed=1; Path=/flush; Max-Age=60');
return await reply.view('flush');
});