L'URL du CDN doit être ajoutée au script src de la CSP

J’ai configuré un site avec des variables d’environnement (ENV) comme suit :

DISCOURSE_FORCE_HTTPS: true
DISCOURSE_S3_ACCESS_KEY_ID: 'KEY'
DISCOURSE_S3_SECRET_ACCESS_KEY: 'SECRET'
DISCOURSE_BACKUP_LOCATION: 's3'
DISCOURSE_ENABLE_S3_UPLOADS: true
DISCOURSE_ENABLE_S3_INVENTORY: false
DISCOURSE_S3_BACKUP_BUCKET: 'mybucket/backups'
DISCOURSE_S3_UPLOAD_BUCKET: 'mybucket'
DISCOURSE_S3_CDN_URL: 'https://mybuckets3.cdn.literatehosting.com'
DISCOURSE_S3_REGION: 'us-west-1'
DISCOURSE_BACKUP_WITH_UPLOADS: 'false'
DISCOURSE_CDN_URL: 'https://mybucket.cdn.literatehosting.com'

Tout fonctionnait parfaitement jusqu’à ce que j’ajoute l’URL du CDN S3. Après avoir ajouté le CDN S3, mon navigateur a commencé à rejeter les requêtes vers le CDN normal (non S3). J’ai ajouté l’URL du CDN à SiteSetting.content_security_policy_script_src= et cela a recommencé à fonctionner. Cela ressemble à un bug, n’est-ce pas ? J’ai simplement redémarré après avoir modifié ces variables d’environnement, sans reconstruire. Dois-je exécuter rake assets:precompile lorsque je modifie les paramètres du CDN ?

Hmm, this should be working fine. The CSP is supposed to whitelist the specific folders on the S3 and pull CDNs that scripts come from.

What CSP was/is Discourse sending with the page? Is this a subfolder install?

1 « J'aime »

I think I understand that. Is that CSP in the static assets that a rake assets:precompile makes? (But then why would adding it to the settings fix it.)

I’m afraid that I don’t quite know the canonical way to get the answer to that question.

Not subfolder. A fairly standard install, though traefik is a reverse proxy in front of it.

curl -I https://discourse.example.com/ or the Chrome inspector, and get the content of the Content-Security-Policy header.

2 « J'aime »