Divisão de resposta HTTP - HTTP response splitting

A divisão da resposta HTTP é uma forma de vulnerabilidade do aplicativo da web , resultante da falha do aplicativo ou de seu ambiente em higienizar adequadamente os valores de entrada. Ele pode ser usado para executar ataques de script entre sites , desfiguração entre usuários, envenenamento de cache da web e explorações semelhantes .

O ataque consiste em fazer com que o servidor imprima uma sequência de alimentação de linha (LF, ASCII 0x0A ) de retorno de carro (CR, ASCII 0x0D ) seguida pelo conteúdo fornecido pelo invasor na seção do cabeçalho de sua resposta, normalmente incluindo-os nos campos de entrada enviados para a aplicação. De acordo com o padrão HTTP ( RFC 2616 ), os cabeçalhos são separados por um CRLF e os cabeçalhos da resposta são separados de seu corpo por dois. Portanto, a falha em remover CRs e LFs permite que o invasor defina cabeçalhos arbitrários, assuma o controle do corpo ou divida a resposta em duas ou mais respostas separadas - daí o nome.

Prevenção

A solução genérica é codificar em URL as strings antes da inclusão em cabeçalhos HTTP , como Location ou Set-Cookie .

Exemplos típicos de sanitização incluem conversão para inteiros ou substituição agressiva de expressão regular . Embora a divisão de resposta não seja específica do PHP , o interpretador PHP contém proteção contra o ataque desde a versão 4.4.2 e 5.1.2.

Referências

  1. ^ "PHP: PHP 5.1.2. Anúncio de Lançamento" . O Grupo PHP . Página visitada em 2013-11-13 .

links externos