Como prevenir ainjecção de CRLF (divisão da resposta HTTP) em PHP

Fiz algum R&D sobre a prevenção da injecção de CRLF em php, mas não consegui encontrar nenhuma solução em mycase, pois utilizo uma ferramenta de arroto para injectar cabeçalhos usando caracteres CRLF como abaixo.

// Using my tool i put CRLF characters at the start of my request url GET /%0d%0a%20HackedHeader:By_Hacker controller/action//This generates an header for me like belowHackedHeader:By_Hacker

Assim posso modificar todos os cabeçalhos fazendo como acima

Esta ferramenta é como um servidor proxy, intercepta o pedido e dá a resposta e podemos modificar a resposta como quisermos.

Assim posso modificar a resposta apenas injectando cabeçalhos usando caracteres CRLF. Agora, o servidor responde a este pedido injectando os caracteres CRLF na resposta.

Só estou preocupado porque campos de cabeçalho como Pragma, Cache-Control, Last-Modified podem levar a ataques de envenenamento de cache.

header and setcookie contain mitigations against response/header splitting , but these can’t help me solve the above problem

Edit

Quando pergunto ao meu site.com contact us page like below Este é o pedido que captei na minha ferramenta como abaixo

Request headers:GET /contactus HTTP/1.1Host: mysite.comAccept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateConnection: keep-alive

E recebo a resposta HTML para o pedido acima

Agora, para o mesmo pedido usando a ferramenta, adiciono cabeçalhos personalizados como abaixo

Request Headers:GET /%0d%0a%20Hacked_header:By_Hacker/contactus HTTP/1.1Host: mysite.comAccept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateConnection: keep-aliveResponse Headers:HTTP/1.1 302 FoundDate: Fri, 10 Jul 2015 11:51:22 GMTServer: Apache/2.2.22 (Ubuntu)Last-Modified: Fri, 10 Jul 2015 11:51:22 GMTCache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0Location: mysite.com Hacked_header:By_Hacker/..Vary: Accept-EncodingContent-Length: 2Keep-Alive: timeout=5, max=120Connection: Keep-AliveContent-Type: text/html; charset=UTF-8

Pode ver o Hacked_header injectado: Por_Hacker / .. na resposta acima

Existe alguma forma na configuração do servidor php ou apache para evitar este tipo de hacking de cabeçalhos?

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *