Como todos sabemos até agora, os ataques XSS são perigosos e muito fáceis de realizar . Várias estruturas facilitam a codificação de HTML, como o ASP.NET MVC:
<%= Html.Encode("string"); %>
Mas o que acontece quando seu cliente exige que ele possa fazer upload de seu conteúdo diretamente de um documento do Microsoft Word?
Aqui está o cenário: as pessoas podem copiar e colar conteúdo do Microsoft word em um editor WYSIWYG (neste caso, tinyMCE ), e essas informações são postadas em uma página da web.
O site é público, mas apenas os membros dessa organização terão acesso para postar informações em uma página da web.
Como faço para lidar com esses requisitos de forma segura? Atualmente, não há verificação feita no que o cliente publica (já que apenas usuários 'confiáveis' podem postar), mas não estou particularmente satisfeito com isso e gostaria de bloqueá-lo ainda mais caso uma conta seja invadida.
O único método conceitual que eu conheço que atende a esses requisitos é colocar na lista branca as tags HTML e permitir que elas passem . Existe outro caminho? Caso contrário, qual é a maneira segura de permitir que o usuário armazene entrada no Banco de Dados de qualquer forma, mas apenas a exiba adequadamente codificada e sem tags ruins?