Codifica di caratteri speciali in risposta che è testo / javascript [duplicato]

0

Sto testando un'applicazione web in cui l'input dell'utente viene inserito senza codifica nella risposta, ma il tipo di contenuto della risposta è text/javascript;charset=UTF-8 .

L'input da due parametri dell'applicazione utente ritorna all'interno del codice JavaScript come questo:

throw 'allowScriptTagRemoting is false.';
//#DWR-INSERT
//#DWR-REPLY
var s0={};
dwr.engine._remoteHandleCallback('1','0',{application:"param1",changedParts:null,module:"param2",nextModule:null,reload:true,showDialog:false,strokeActions:s0,viewMember:""});

Ma quando sto provando a terminare remoteHandleCallback inserendo " e } , questi caratteri sono fuggiti con barra rovesciata e trattati come parte della stringa, ad esempio:

application:"\"param1"

Questa è una difesa adeguata contro XSS e altre vulnerabilità?

    
posta user187205 31.10.2017 - 12:19
fonte

1 risposta

0

Poiché il tipo di risposta è text / javascript, questo è probabilmente un file js che viene caricato e utilizzato. Il caricamento di questo file direttamente nel browser molto probabilmente non innescherà un XSS anche se si potrebbe iniettare il carico utile a causa del tipo di contenuto non text / html. Consulta la seguente domanda per ulteriori Informazioni. Se l'intestazione di risposta content-type-options: nosniff è incluso, il rischio si riduce ulteriormente.

Poiché entrambi "e" sono correttamente codificati, sarà difficile da sfruttare. Potresti provare diverse codifiche per bypassare la codifica di sicurezza.

Quindi tutto sommato sembra una difesa adeguata contro XSS.

    
risposta data 31.10.2017 - 16:42
fonte

Leggi altre domande sui tag