diff --git a/src/hooks.server.ts b/src/hooks.server.ts index c0b865b..78fc9ea 100644 --- a/src/hooks.server.ts +++ b/src/hooks.server.ts @@ -1 +1,24 @@ -export { handle } from './lib/auth/authHandler'; +import { sequence } from '@sveltejs/kit/hooks'; +import type { Handle } from '@sveltejs/kit'; +import { handle as authHandle } from './lib/auth/authHandler'; + +const contentSecurityPolicy = [ + "default-src 'self' blob: data: https://*.basemaps.cartocdn.com", + "font-src 'self'", + "img-src 'self' https://*.basemaps.cartocdn.com data: blob:", + "object-src 'none'", + "script-src 'self' 'unsafe-inline' https://static.cloudflareinsights.com blob: data:", + "style-src 'self' 'unsafe-inline'" +].join('; '); + +const securityHeaders: Handle = async ({ event, resolve }) => { + const response = await resolve(event); + + response.headers.set('X-Content-Type-Options', 'nosniff'); + response.headers.set('X-Frame-Options', 'DENY'); + response.headers.set('Content-Security-Policy', contentSecurityPolicy); + + return response; +}; + +export const handle = sequence(securityHeaders, authHandle); diff --git a/src/lib/components/sidebar/ConnectPanel.svelte b/src/lib/components/sidebar/ConnectPanel.svelte index 811c2f0..194926b 100644 --- a/src/lib/components/sidebar/ConnectPanel.svelte +++ b/src/lib/components/sidebar/ConnectPanel.svelte @@ -1,6 +1,5 @@