Mitigare gli attacchi XSS con la Content Security Policy

As promised, this feature was just enabled by default: CSP Frame Ancestors enabled by default

10 Mi Piace

Ciao,
Sto attualmente configurando Google AdSense sul mio sito web e sembra che mi manchi l’impostazione “Abilita la raccolta dei report sulle violazioni CSP in /csp_reports”. Attualmente sto auto-ospitando Discourse nella versione 2.9.0.beta6

sopra, nella citazione, uno screenshot dell’impostazione che mi manca


sopra, la mia pagina delle impostazioni per CSP con l’impostazione “Abilita la raccolta dei report sulle violazioni CSP in /csp_reports” mancante.

Qualsiasi aiuto è apprezzato! E per favore ditemi se ho impostato correttamente le impostazioni per AdSense, non l’ho mai usato prima :occhi: !

3 Mi Piace

Mi scuso, le mie risposte precedenti qui sono obsolete perché circa un mese fa abbiamo reso content_security_policy_collect_reports un’impostazione nascosta. Puoi ancora abilitarla, ma devi farlo tramite la console Rails, come segue:

./launcher enter app
...
rails c
...
SiteSetting.content_security_policy_collect_reports = true

Nota che questo è molto rumoroso, ti consiglio vivamente di non intraprendere questa strada e di abilitare semplicemente CSP e navigare nel sito con la console del browser aperta utilizzando più browser (Chrome, Firefox, Safari). In questo modo troverai la maggior parte dei problemi. E con la configurazione che hai, stai essenzialmente permettendo quasi tutto ciò che CSP protegge, quindi non dovresti aver bisogno di report.

6 Mi Piace

Forse mi sfugge qualcosa, ma non vedo queste impostazioni nell’interfaccia delle impostazioni.

  • content_security_policy
  • content_security_policy_report_only
  • content_security_policy_collect_reports (vedo che ora è nascosto)
  • content_security_policy_script_src

Queste opzioni sono disponibili per le istanze ospitate? Non ho visto alcun accenno a questa limitazione nel post originale o nei commenti.

Modifica: Ho anche tentato di impostare la policy di sicurezza tramite un tema.

Sembra non funzionare come indicato nel post originale.

Presumo che il piano ospitato a cui sono iscritto non lo permetta, anche quando fatto tramite un tema o un componente del tema?

O forse sto facendo qualcosa di completamente sbagliato.

1 Mi Piace

Attualmente, Discourse spedisce una policy CSP di Livello 2 con le seguenti direttive per impostazione predefinita:

  • base-uri limita gli URL per l’elemento <base>

Esiste un’opzione per sovrascrivere il valore predefinito per l’header base-uri?

1 Mi Piace

Dove vengono effettivamente utilizzati gli elementi <base> nel discorso?

Ciò interromperebbe le notifiche push di Discourse?

Potrebbe. Potrebbe essere necessaria un’ambientazione più adatta.

1 Mi Piace

Un post è stato diviso in un nuovo argomento: Qual è il metodo suggerito per utilizzare immagini sicure?

Ciao,\nPosso sapere come aggirare il problema sottostante? Ho aggiunto lo script che invoca una nuova espressione Function() a content_security_policy_script_src, ma la console del mio browser si lamenta ancora dell’errore sottostante. Dove posso escludere ‘unsafe-eval’? Grazie!\n\nUncaught EvalError: Rifiutato di valutare una stringa come JavaScript perché 'unsafe-eval' non è una origine di script consentita nella seguente direttiva della Content Security Policy:\n\n

1 Mi Piace

Mi scuso. Ignora il mio post precedente se le mie osservazioni qui sotto sono corrette. Sappi solo che attraverso i post precedenti posso impostare ‘unsafe-eval’ direttamente su content_security_policy_script_src e non ci sono più errori JS segnalati nella console.

1 Mi Piace

Potrebbe dare un’occhiata all’impostazione del sito content security policy script src?

1 Mi Piace

Sì. Come detto nelle risposte precedenti, ‘unsafe-eval’ può essere aggiunto direttamente a content_security_policy_script_src, pensavo fossero consentiti solo URL base o URL completi da aggiungere.

1 Mi Piace