Le intestazioni HTTP sono un tipo di metadati inviati con richieste e risposte web, le informazioni che forniscono possono essere importanti o semplicemente informative. Le intestazioni di sicurezza sono un sottoinsieme delle "intestazioni di risposta" che possono essere impostate dal server Web, sono una delle funzionalità che possono aiutare a risolvere una serie di problemi di sicurezza. Una delle intestazioni di sicurezza, chiamata "X-Frame-Options", è progettata per prevenire attacchi di clickjacking.
Click-jacking
Il clickjacking, noto anche come "ripristino dell'interfaccia utente", è un problema in cui un utente malintenzionato è in grado di indurre un utente a fare clic su qualcosa che non è quello che sembra essere. Per i siti Web, ciò avviene sovrapponendo un sito Web trasparente a uno visibile. In questo tipo di attacco l'utente pensa di interagire con il sito web visibile ma in realtà sta influenzando inconsapevolmente il sito web trasparente.
Ad esempio, un utente malintenzionato potrebbe creare un sito Web che rende probabile che un utente faccia clic su un pulsante, forse un pulsante di riproduzione per un video. In uno strato trasparente sopra quella pagina web c'è una seconda pagina web, come la pagina web per eliminare il tuo account Facebook con il pulsante "Elimina account" posizionato direttamente sopra il pulsante di riproduzione. In questo scenario, quando l'utente prova a fare clic su Riproduci, in realtà fa clic sul pulsante per eliminare il proprio account Facebook.
Il clickjacking si basa sulla capacità di visualizzare il sito Web di destinazione sopra il sito Web fittizio, attraverso un processo chiamato "Framing". Il framing utilizza l'elemento HTML "iframe" che può caricare un'intera pagina web separata all'interno di un'altra pagina. Caricando la pagina web di destinazione in un frame, posizionandola con attenzione e trasformandola in trasparente, la vittima sarà completamente all'oscuro di essere stata indotta a compiere un'azione con l'inganno.
X-Frame-Opzioni
L'intestazione della risposta HTTP "X-Frame-Options" è una funzione facoltativa che può essere impostata per i siti Web nei file di configurazione del server. X-Frame-Options impedisce che le pagine Web vengano caricate in iframe, il che impedisce che vengano sovrapposte a un altro sito Web. Il browser della vittima applica effettivamente il controllo di sicurezza, questo perché tutti i browser rispettano l'intestazione X-Frame-Options e si rifiuteranno di caricare qualsiasi pagina Web con l'intestazione impostata in un frame.
L'intestazione consente al proprietario del sito Web di configurare quanto sia restrittiva l'impostazione. Ci sono due impostazioni: "X-Frame-Options: DENY" impedisce che una pagina web protetta venga inquadrata. L'altra opzione, "X-Frame-Options: SAMEORIGIN", consente di incorniciare pagine web protette, solo se la pagina che carica il frame ha lo stesso nome di dominio. In questo caso, puoi caricare un frame sul tuo sito Web ma nessun altro può caricarlo sul proprio.