Reino: Input Validation and Representation

Problemas de validação e representação da entrada são causados por metacaracteres, codificações alternativas e representações numéricas. Confiar na entrada resulta em problemas de segurança. Os problemas incluem: “Buffer Overflows”, ataques de “Cross-Site Scripting”, “SQL Injection”, entre outros.

Insecure Sanitizer Policy

Abstract
O uso de dados controlados pelo usuário ou não confiáveis para definir uma política sanitizadora de HTML pode permitir que um invasor contorne as exigências de higienização e lance ataques de XSS (criação de scripts entre sites).
Explanation
O termo geral "manipulação de entrada" descreve funções como validação, sanitização, filtragem e codificação/decodificação de dados de entrada. Vulnerabilidades de criação de script entre sites, injeção de SQL e controle de processos são todas derivadas de manipulações de entradas incorretas ou ausentes. A sanitização de entradas, o que implica a transformação dessas entradas em um formato aceitável, geralmente é implementada além da validação de entradas. A sanitização de HTML refere-se à limpeza e à depuração de entradas do usuário para permitir apenas tags, atributos e elementos considerados seguros.
A implementação de uma política de sanitização de HTML completa é difícil. A chave para a aplicação bem-sucedida é a compreensão do contexto em que os dados serão utilizados. Cada contexto tem suas próprias vulnerabilidades, e não existe uma versão genérica. Embora seja aconselhável usar um sanitizador de HTML (por exemplo, o sanitizador de HTML OWASP) para proteger contra vulnerabilidades XSS em aplicativos Web, uma implantação inadequada pode levar a uma falsa sensação de segurança.
Exemplo 1: O seguinte código Java usa a variável de entrada controlada pelo usuário elements na construção de uma política sanitizadora de HTML:


...
String elements = prop.getProperty("AllowedElements");
...
public static final PolicyFactory POLICY_DEFINITION = new HtmlPolicyBuilder()
.allowElements(elements)
.toFactory();

....


Um usuário mal-intencionado pode fazer com que a política sanitizadora de HTML aceite elementos perigosos, como <script>, fornecendo-os para elements.

References
[1] OWASP Cross-Site Scripting (XSS) Prevention Cheat Sheet
[2] Understanding Malicious Content Mitigation for Web Developers CERT
[3] HTML 4.01 Specification W3
desc.dataflow.java.insecure_sanitizer_policy