Come tutti sappiamo ormai, gli attacchi XSS sono pericolosi e veramente facile da estrarre . Vari framework semplificano la codifica di HTML, come ASP.NET MVC:
<%= Html.Encode("string"); %>
Ma cosa succede quando il cliente richiede di essere 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 sono pubblicate su una pagina Web.
Il sito web è pubblico, ma solo i membri di tale organizzazione avranno accesso alla pubblicazione di informazioni su una pagina web.
Come gestisco questi requisiti in modo sicuro? Attualmente non viene effettuato alcun controllo su ciò che il client invia (poiché solo gli utenti "fidati" possono pubblicare), ma non ne sono particolarmente soddisfatto e vorrei chiuderlo ulteriormente nel caso in cui un account venga violato.
L'unico metodo concettuale di cui sono a conoscenza che soddisfi questi requisiti è quello di inserire tag HTML nella whitelist e lasciarli passare . C'è un altro modo? In caso contrario, qual è un modo sicuro per consentire all'utente di memorizzare l'input nel Database in qualsiasi forma, ma solo visualizzarlo correttamente codificato e privo di tag non validi?