Sanitização HTML
Sanitização HTML ou higienização HTML (do inglês HTML sanitization) é o processo de examinar um documento HTML e produzir um novo documento HTML que preserva apenas as marcações que são consideradas "seguras". A filtragem HTML pode ser usada para proteção contra ataques de cross-site scripting (XSS) pela limpeza de qualquer código HTML enviado pelo usuário.
Marcações básicas para alterar fontes normalmente são permitidas, como <b>
, <i>
, <u>
, <em>
, e <strong>
enquanto marcações mais avançadas como <script>
, <object>
, <embed>
, e <link>
são removidas pelo processo de filtragem.
A sanitização normalmente é realizada pela utilização da abordagem de lista branca ou lista negra. Um item deixado fora da lista branca, faz com que a sanitização produza código HTML que necessita de elementos seguros. Se um item deixado fora de uma lista negra, uma vulnerabilidade estará presente na saída HTML sanitizada. Novos recursos de HTML inseguro, introduzidos após uma lista negra ter sido definida, faz com que a lista negra se torne desatualizada.
Em PHP, a sanitização HTML pode ser realizada usando a função strip_tags()
sob o risco de remoção de todo conteúdo textual seguindo um símbolo não fechado de menor que ("<").[1] A biblioteca HTML Purifier é outra opção popular para aplicações PHP.[2]
Em Java (e .NET), a sanitização pode ser alcançada pela utilização do OWASP Java HTML Sanitizer Project.[3]
Em .NET, um número de sanitizadores utilizam o Html Agility Pack, um analisador sintático de HTML.[4][5]
Referências