Suddivisione della risposta HTTP
-
03-07-2019 - |
Domanda
Sto cercando di gestire questo possibile exploit e mi chiedo quale sia il modo migliore per farlo? dovrei usare il validatore comune di apache e creare un elenco di simboli consentiti noti e usarlo?
Soluzione
Dall' articolo di Wikipedia :
La soluzione generica consiste nel codificare le stringhe URL prima dell'inclusione nelle intestazioni HTTP come Location o Set-Cookie.
Esempi tipici di sanificazione includono il casting in numero intero o la sostituzione aggressiva delle espressioni regolari. Vale la pena notare che, sebbene questo non sia un problema specifico di PHP, l'interprete PHP contiene protezione contro questo attacco dalla versione 4.4.2 e 5.1.2.
Modifica
Sono legato all'utilizzo di jsp con azioni java!
Non sembra esserci alcuna protezione basata su JSP per questo vettore di attacco - molte descrizioni sul web assumono asp o php, ma questo link descrive un modo abbastanza neutro rispetto alla piattaforma di affrontare il problema (jsp usato come esempio accidentale in esso).
Fondamentalmente il tuo primo passo è identificare i caratteri potenzialmente pericolosi (CR, LF, ecc.) e quindi rimuoverli. Temo che sia una soluzione tanto solida quanto puoi sperare!
Soluzione
Convalida input. Rimuovi CR e LF (e tutti gli altri caratteri pericolosi) prima di incorporare i dati nelle intestazioni di risposta HTTP, in particolare durante l'impostazione dei cookie e il reindirizzamento. È possibile utilizzare prodotti di terze parti per difendersi dall'iniezione CR / LF e verificare l'esistenza di tali falle di sicurezza prima della distribuzione dell'applicazione.
Altri suggerimenti
Usa PHP ? ;)
Secondo Wikipedia e il CHANGELOG di PHP, PHP ha avuto protezione contro di esso in PHP4 dal 4.4.2 e PHP5 dal 5.1.2.
L'ho solo sfogliato, ma questo potrebbe aiutare . I suoi esempi sono scritti in JSP.
ok, ben lanciare in un int non è molto utile quando si leggono le stringhe, anche usare regex in ogni azione che riceve input dal browser potrebbe essere disordinato, sto cercando una soluzione più solida