L'URL CDN deve essere aggiunto a csp script src

Ho configurato un sito con ENV in questo modo:


  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'

Funzionava perfettamente finchĂ© non ho aggiunto l’s3 cdn url. Dopo aver aggiunto il CDN S3, il mio browser ha iniziato a rifiutare le richieste al CDN normale (non S3). Ho aggiunto l’URL del CDN a SiteSetting.content_security_policy_script_src= e poi ha funzionato di nuovo. Sembra un bug, vero? Ho semplicemente eseguito un riavvio dopo aver modificato queste variabili ENV, non una rebuild. È necessario eseguire un rake assets:precompile quando si modificano le impostazioni del CDN?

Hmm, questo dovrebbe funzionare correttamente. La CSP dovrebbe mettere in lista bianca le cartelle specifiche su S3 e recuperare i CDN da cui provengono gli script.

Quale CSP sta inviava/invia Discourse con la pagina? Si tratta di un’installazione in una sottocartella?

Penso di aver capito. Quel CSP si trova nelle risorse statiche generate da rake assets:precompile? (Ma allora perché aggiungerlo alle impostazioni dovrebbe risolvere il problema.)

Temo di non conoscere il metodo canonico per ottenere la risposta a questa domanda.

Non in una sottocartella. Un’installazione abbastanza standard, anche se c’ù traefik come proxy inverso davanti.

curl -I https://discourse.example.com/ o gli strumenti di sviluppo di Chrome, e recupera il contenuto dell’intestazione Content-Security-Policy.