Parliamo del progetto
Partitech Sonata Extra Bundle

Pacchetto Extra Sonata: configurare una Content Security Policy

Introduzione La Content Security Policy (CSP) è un meccanismo di sicurezza del browser che aiuta a ridurre i rischi di Cross-Site Scripting (XSS) e di iniezione di contenuti. Il bundle Sonata-Extra per Symfony offre un modo efficace per implementare e gest...

Introduzione

La Content Security Policy (CSP) è un meccanismo di sicurezza del browser che aiuta a ridurre i rischi di Cross-Site Scripting (XSS) e di iniezione di contenuti. Il bundle Sonata-Extra per Symfony offre un modo efficace per implementare e gestire la CSP nella tua applicazione.

Comprendere la Content Security Policy

La CSP è trasmessa tramite un'intestazione di risposta e permette di controllare le risorse che la tua pagina web può caricare o eseguire. Specificando un elenco di fonti affidabili, puoi ridurre il rischio di iniezioni di contenuti dannosi.

Concetti chiave

  • Direttive: Queste sono le regole che definiscono quali risorse possono essere caricate. Ogni direttiva controlla un tipo specifico di risorsa, come script, stili, immagini, ecc.
  • Fonti: Sotto ogni direttiva, specifichi delle fonti (come degli URL) da cui la risorsa può essere caricata.

Tipi di sicurezza nel bundle Sonata-Extra

Nel pacchetto Sonata Extra, SECURITY_TYPES è una tabella costante che associa le direttive CSP alle loro chiavi di configurazione. Ecco una suddivisione di ogni direttiva:

default-src

Ripiego predefinito per la maggior parte delle direttive. Controlla le sorgenti predefinite per diversi tipi di contenuto.

script-src

Definisce le fonti valide per JavaScript. Le opzioni includono:

  • 'self': Caricare gli script solo dalla stessa origine.
  • 'unsafe-inline': Consentire gli script online, anche se è meno sicuro.
  • URL specifiche: Definisci gli script esterni autorizzati.

style-src

Specifica le fonti valide per i fogli di stile. Opzioni simili a script-src.

img-src

Controlla le fonti da cui le immagini possono essere caricate.

connect-src

Limita le origini a cui puoi connetterti (ad esempio, WebSocket, richieste AJAX).

font-src

Definisce le sorgenti dei file dei font.

object-src

Controlla le fonti per elementi come <object>, <embed>, ecc.

media-src

Specifica le sorgenti per il caricamento dei media (audio e video).

frame-src

Determina le fonti valide per i frame e gli iframe.

Altre direttive

  • child-src, form-action, frame-ancestors, manifest-src, base-uri, sandbox, report-uri, worker-src, navigate-to: Questi affinano ulteriormente le politiche per casi d'uso specifici.

Implementazione della CSP nel bundle Sonata-Extra

Configurazione

Definite le vostre politiche CSP in un file di configurazione YAML sotto partitech_sonata_extra. Per esempio :

partitech_sonata_extra:
  content_security_policy:
    object-src:
      - 'none'
    script-src:
      - 'self'
      - 'unsafe-inline'
      - 'https://external.script.url'
    style-src:
      - 'self'
      - 'unsafe-inline'
      - 'https://external.stylesheet.url'
    font-src:
      - 'self'
      - 'https://cdnjs.cloudflare.com/'
      - 'https://fonts.gstatic.com/'

Convalidare la politica prima del suo dispiegamento

Configurazione della Content Security Policy

Risultato della Content Security Policy

Iniziate osservando le violazioni in modalità rapporto, poi restringete le fonti autorizzate. Una CSP non sostituisce né l’escape delle uscite né la convalida degli input.

Condividi questo articolo