Spaces:
Sleeping
Sleeping
File size: 1,319 Bytes
805a069 d1ade07 805a069 394621e 805a069 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | export function buildMissionControlCsp(input: { nonce: string; googleEnabled: boolean }): string {
const { nonce, googleEnabled } = input
return [
`default-src 'self'`,
`base-uri 'self'`,
`object-src 'none'`,
`frame-ancestors 'self' https://huggingface.co https://*.hf.space`,
`script-src 'self' 'nonce-${nonce}' 'strict-dynamic' blob:${googleEnabled ? ' https://accounts.google.com' : ''}`,
`style-src 'self' 'unsafe-inline'`,
`style-src-elem 'self' 'unsafe-inline'`,
`style-src-attr 'unsafe-inline'`,
`connect-src 'self' ws: wss: http://127.0.0.1:* http://localhost:* https://cdn.jsdelivr.net`,
`img-src 'self' data: blob:${googleEnabled ? ' https://*.googleusercontent.com https://lh3.googleusercontent.com' : ''}`,
`font-src 'self' data:`,
`frame-src 'self'${googleEnabled ? ' https://accounts.google.com' : ''}`,
`worker-src 'self' blob:`,
].join('; ')
}
export function buildNonceRequestHeaders(input: {
headers: Headers
nonce: string
googleEnabled: boolean
}): Headers {
const requestHeaders = new Headers(input.headers)
const csp = buildMissionControlCsp({ nonce: input.nonce, googleEnabled: input.googleEnabled })
requestHeaders.set('x-nonce', input.nonce)
requestHeaders.set('Content-Security-Policy', csp)
return requestHeaders
}
|