Come ormai tutti sappiamo, gli attacchi XSS sono pericolosi e davvero facili da eseguire . Vari framework semplificano la codifica dell'HTML, come ASP.NET MVC:
<%= Html.Encode("string"); %>
Ma cosa succede quando il tuo client richiede che siano in grado di caricare i propri contenuti direttamente da un documento di Microsoft Word?
Ecco lo scenario: le persone possono copiare e incollare il contenuto da Microsoft Word in un editor WYSIWYG (in questo caso tinyMCE ), quindi tali informazioni vengono pubblicate in una pagina Web.
Il sito Web è pubblico, ma solo i membri di tale organizzazione avranno accesso a pubblicare informazioni su una pagina Web.
Come gestisco questi requisiti in modo sicuro? Al momento non viene effettuato alcun controllo su ciò che il cliente pubblica (dal momento che solo gli utenti "fidati" possono pubblicare), ma non ne sono particolarmente soddisfatto e vorrei bloccarlo ulteriormente in caso di violazione di un account.
L'unico metodo concettuale di cui sono a conoscenza che soddisfa questi requisiti è di autorizzare i tag HTML e lasciarli passare . C'è un altro modo? In caso contrario, qual è un modo sicuro per consentire all'utente di archiviare l'input nel database in qualsiasi forma, ma solo visualizzarlo correttamente codificato e privo di tag errati?