Ridurre il rischio di clickjacking con XFO o CSP

Il clickjacking è un attacco dannoso in cui gli utenti vengono indotti con l'inganno a fare clic su link o elementi dell'interfaccia utente su un sito che sembra attendibile e familiare. In genere, questo viene ottenuto incorporando parte o tutto il sito attendibile nel sito dannoso utilizzando un <iframe>.

L'intestazione X-Frame-Options (XFO) e l'istruzione frame-ancestors nell'intestazione Content-Security-Policy (CSP) possono mitigare gli attacchi di clickjacking controllando la modalità di incorporamento di un sito in un <iframe>.

Come non va a buon fine il controllo Lighthouse

Il controllo viene superato se l'intestazione XFO è impostata su SAMEORIGIN o DENY oppure se l'istruzione frame-ancestors è impostata nell'intestazione CSP. Il controllo non andrà a buon fine se non è configurato nessuno di questi criteri di controllo dei frame.

Avviso del report Lighthouse che indica che non è stata trovata alcuna intestazione di risposta CSP o XFO per mitigare il clickjacking.
Avviso del report Lighthouse che indica che non è stata trovata alcuna intestazione di risposta CSP o XFO per mitigare il clickjacking.

Come impostare un criterio di controllo dei frame per ridurre il rischio di clickjacking

È necessario impostare un criterio di controllo dei frame nelle intestazioni HTTP della richiesta del documento iniziale. L'intestazione X-Frame-Options e la direttiva frame-ancestors in Content-Security-Policy non funzioneranno se impostate su un elemento <meta>.

Intestazione XFO

L'impostazione di DENY o SAMEORIGIN per l'intestazione XFO riduce gli attacchi di clickjacking:

X-Frame-Options: SAMEORIGIN
X-Frame-Options: DENY

La direttiva SAMEORIGIN consente la visualizzazione della pagina solo se tutti i frame principali condividono la stessa origine della pagina stessa. Al contrario, la direttiva DENY impedisce la visualizzazione della pagina in un frame, indipendentemente dall'origine del frame principale.

Intestazione CSP

La direttiva frame-ancestors all'interno dell'intestazione CSP definisce i siti che possono incorporare la pagina specificata in un <frame>, <iframe>, <object> o <embed>. Analogamente a XFO, la direttiva CSP frame-ancestors può essere utilizzata per mitigare gli attacchi di clickjacking impostandola su self o none:

Content-Security-Policy: frame-ancestors 'self';
Content-Security-Policy: frame-ancestors 'none';

Tuttavia, la direttiva frame-ancestors è più flessibile di XFO perché può impostare origini principali specifiche che possono incorporare la pagina:

Content-Security-Policy: frame-ancestors 'self' https://example.com;

Risorse