Per definizione, l'archiviazione di javascript e il rendering nel browser è XSS
1) Aggiungi identità
2) Aggiungi una norma di utilizzo: link
3) Sono contrario alla whitelisting / blacklisting del filtro dei siti server perché è una soluzione al problema principale, è difficile fare bene e può rilasciare input che non devono essere eliminati. Quando hai HTML5, CSS3 e JS in continua evoluzione, dovrai continuare ad aggiornare la tua lista bianca / lista nera fino al punto che il disinfettante in atto diventa semplicemente una pace di codice che consente tutto e quindi arriverà a un punto che sconfigge il suo scopo , ma se insisti su questa traccia OWASP HTML Sanitizer, JSoup è un altro esempio oltre a quello sopra citato.
4) Invece di 3) usa link e rilascia il supporto per i browser antichi, che è il modo corretto di risolverlo come sul server si memorizzerebbe il contenuto ma si eseguirà nel contesto del browser
5) Puoi aggiungere tag / segnaposti di template per ridurre il rischio (ad es. markdown), questo aiuterà anche gli strumenti di pentesting a non tornare indietro; alert (1); come il server si aspetterebbe input diversi per archiviare e inviare il javascript
6) Avviare AV e rafforzare l'analizzatore di codici statici sul server e spostarlo su
7) Convalida incorporata per errori: JSLint / JSHint / CSSHint, ecc.
8) Infine, se non ti fidi di nessuno degli automatismi sopra elencati, aggiungi il fattore umano per esaminare e approvare il passaggio prima della pubblicazione