Questo codice è vulnerabile agli attacchi basati su DOM?

2

Stiamo sviluppando il codice per un'applicazione web di Banking. Vogliamo assicurarci che il codice sia sicuro e dal momento che stiamo usando un sacco di codice javascript, siamo piuttosto preoccupati se le possibilità di un attacco basato sul web possono emergere. Qualcuno può per favore guardare nel codice qui sotto e commentare se qualche attacco potrebbe essere possibile da un utente malintenzionato? Il codice seguente è all'interno di una pagina jsp.

window.location.href = document.getElementById("st_val").value

st_val

è un campo nascosto sul modulo che contiene uno dei 3 valori, che viene utilizzato dal codice Java sul backend per decidere su una logica.

    
posta Haunted 11.11.2015 - 00:56
fonte

1 risposta

1

Questo non sarà un problema finché st_val NON è sotto il controllo del cliente. Come sapete, se impostate il valore della variabile window.location.href reindirizzerà la pagina corrente al nuovo valore. Se l'attaccante ha impostato il valore javascript: alert (1) su st_val , questo verrà terminato con DOM XSS.

Ad esempio;

<html>
<meta charset="utf-8"/>
Hello
<script>
function onSubmit(){
        window.location.href = document.getElementById("st_val").value;
}
</script>
        <input type="hidden" id="st_val" value="<?php echo (isset($_GET['pay']) ? $_GET['pay'] : '')?>">
        <input type="submit" value="Submit" onclick="return onSubmit();">
</html>

L'attaccante invia la seguente richiesta. link

La funzione

alert (1) verrà chiamata immiadetly quando fai clic sul pulsante di invio.

In conclusione, è sicuro usare window.location.href se i valori provengono dal tuo back-end, senza la decisione del cliente!

    
risposta data 11.11.2015 - 12:14
fonte

Leggi altre domande sui tag