Dato qualche JavaScript che modifica il titolo della pagina acquisendo dati variabili
document.title = someVariable
Sto cercando di affrontare XSS basato su dom mantenendo il titolo abbastanza leggibile. Pertanto, fare qualcosa come escape()
o encodeURI()
non funzionerà.
Non ho necessariamente il controllo su come il document.title può essere usato in altri script, quindi voglio assicurarmi di fare un po 'di sanitizzazione nella materia meno distruttiva, ma evitare possibili scenari in cui il modo in cui la variabile viene elaborata successivamente potrebbe essere decodificato in modo che quest'ultimo diventi XSS.
I miei primi pensieri erano qualcosa del genere:
someVariable = someVariable.replace('<script', 'noscript');
someVariable = someVariable.replace(/[<>'"]/g, '').replace(/%3[CEce]/, '');
document.title = someVariable;
Che è minimamente distruttivo dal punto di vista della leggibilità, la rimozione di questi caratteri potrebbe potenzialmente interrompere il codice successivo, ma preferirei rompere il codice a favore della sicurezza.
Mi sento come se stessi viaggiando qui, quindi vorrei sapere se esiste un approccio migliore che soddisfi i requisiti di leggibilità. In caso contrario, sono consigliati altri filtri o disinfettanti?