Suddivisione della risposta HTTP - HTTP response splitting

La suddivisione della risposta HTTP è una forma di vulnerabilità delle applicazioni Web , derivante dall'incapacità dell'applicazione o del suo ambiente di disinfettare adeguatamente i valori di input. Può essere utilizzato per eseguire attacchi cross-site scripting , defacement tra utenti, avvelenamento della cache Web e exploit simili .

L'attacco consiste nel far stampare al server una sequenza di avanzamento riga di ritorno a capo (CR, ASCII 0x0D ) (LF, ASCII 0x0A ) seguita dal contenuto fornito dall'aggressore nella sezione di intestazione della sua risposta, tipicamente includendoli nei campi di input inviati a l'applicazione. Secondo lo standard HTTP ( RFC 2616 ), le intestazioni sono separate da un CRLF e le intestazioni della risposta sono separate dal corpo di due. Pertanto, la mancata rimozione di CR e LF consente all'autore dell'attacco di impostare intestazioni arbitrarie, assumere il controllo del corpo o suddividere la risposta in due o più risposte separate, da cui il nome.

Prevenzione

La soluzione generica consiste nel codificare le stringhe in URL prima dell'inclusione nelle intestazioni HTTP come Location o Set-Cookie .

Esempi tipici di sanificazione includono il casting su numeri interi o la sostituzione aggressiva di espressioni regolari . Sebbene la suddivisione della risposta non sia specifica di PHP , l'interprete PHP contiene protezione contro gli attacchi dalla versione 4.4.2 e 5.1.2.

Riferimenti

  1. ^ "PHP: PHP 5.1.2. Annuncio di rilascio" . Il gruppo PHP . Estratto 2014/11/13 .

link esterno