Início‎ > ‎

Proteger a aplicação web contra cross site scripting

Ataques de cross site scripting (XSS) consistem em incluir scripts ou links em sites ou aplicações web com o intuito de redirecionar o usuário para uma página forjada. Uma vez redirecionado, o usuário pode ser ludibriado e inserir informações sigilosas em um site desconhecido, levando à quebra do sigilo de informações como identificadores, senhas, etc. Outra forma de XSS é a inserção de código Javascript na página. O código inserido pode, entre outras coisas, disponibilizar para o atacante cookies ou identificadores de sessão ou pode fazer com que o browser do usuário execute alguma ação danosa, como o download de cavalos de Tróia.

A primeira forma de proteger uma aplicação web contra ataques de XSS é garantir que a aplicação valide todos os dados que receber como entrada, incluindo headers, campos de formulários, cookies, strings de consulta e campos escondidos (hidden fields). Veja no item “Validar os dados de entrada” a discussão sobre como deve se dar esta validação.

A codificação dos dados fornecidos pelo usuário também deve ser usada para impedir a exploração de vulnerabilidades de XSS por evitar que os scripts inseridos ilegalmente sejam transmitidos aos usuários da aplicação num formato executável. As aplicações podem ser proteger de ataques baseados em Javascript convertendo os caracteres enviados para o browser do usuário para escape codes do HTML (<, > e ( por exemplo). Esta conversão pode ser feita pelo uso de bibliotecas como a Apache Commons Lang (classe StringEscapeUtils, URL: http://commons.apache.org/lang/) ou a OWASP ESAPI (classe DefaultEncoder, URL: http://www.owasp.org/index.php/ESAPI).

Em suma, a proteção contra XSS deve ocorrer de duas formas:

  1. Validação das entradas, conforme detalhado no item Validar os dados de entrada;
  2. Codificação da saída (página web), conforme descrito acima.
Comments