Gestisco un paio di siti Web, quindi mi chiedo quale sia l'uso appropriato della protezione per il clickjacking come l'intestazione della risposta x-frame-options? Quali pagine sono suscettibili a questo tipo di attacco ai miei utenti?
In generale, ogni pagina che consente all'utente di modificare i dati è un potenziale bersaglio per il clickjacking. L'obiettivo del clickjacking è ingannare la vittima nel compiere azioni per conto dell'attaccante. Ciò influisce su ogni pagina con moduli o pulsanti o altri elementi dell'interfaccia utente che hanno effetti persistenti.
Tuttavia, raccomando vivamente di non seguire l'approccio della lista nera e scegliere le singole pagine come protezione. È molto facile trascurare qualcosa, le pagine possono cambiare nel tempo e persino una pagina apparentemente innocua può diventare pericolosa attraverso un'ulteriore vulnerabilità. Ad esempio, l'autore dell'attacco potrebbe aver individuato una vulnerabilità di cross-site scripting sul tuo sito. Combinando questo con il clickjacking, potrebbero essere in grado di intraprendere azioni arbitrarie a prescindere da ciò per cui la pagina è stata originariamente progettata.
L'approccio corretto è whitelist: proteggi ogni pagina tranne quelle che devono assolutamente essere racchiuse.
Si noti che l'impostazione dell'intestazione su qualsiasi valore diverso da DENY
non è affidabile. Di fronte ai frame nidificati, i browser correnti di solito controllano solo il sito principale. Questo significa che puoi finire con situazioni come questa: Permetti al sito good.com
di incorporare la tua pagina come frame, ma questo sito incorpora evil.com
. Ciò consente a evil.com
di incorniciare la tua pagina nonostante l'intestazione X-FRAME-OPTIONS
sia impostata su good.com
, perché il sito di livello superiore è effettivamente good.com
.
Quindi, se permetti il framing, si aspetti che la pagina venga incorniciata su qualsiasi sito, non solo su quella che hai scelto.
Leggi altre domande sui tag web-application clickjacking