¿Este código es vulnerable a los ataques basados en DOM?

2

Estamos desarrollando un código para una aplicación web de Banca. Queremos asegurarnos de que el código sea seguro y dado que estamos utilizando una gran cantidad de código javascript, estamos preocupados por la posibilidad de que surja alguna posibilidad de un ataque basado en web. ¿Alguien puede consultar el código a continuación y comentar si un atacante podría realizar un ataque? El siguiente código está dentro de una página jsp.

  

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

st_val

es un campo oculto en el formulario que contiene uno de los 3 valores, que utiliza el código Java en el backend para decidir sobre una lógica.

    
pregunta Haunted 11.11.2015 - 00:56
fuente

1 respuesta

1

Esto no será un problema siempre que st_val NO esté bajo el control del cliente. Como sabe, si está configurando el valor de la variable window.location.href, redirigirá la página actual al nuevo valor. Si el atacante establece el valor javascript: alert (1) en el st_val , esto terminará con DOM XSS.

Por ejemplo;

<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>

El atacante envía la siguiente solicitud. enlace

La función

alerta (1) se llamará de forma inmediata cuando haga clic en el botón de envío.

En conclusión, es seguro utilizar window.location.href siempre que los valores provengan de tu backend, sin la decisión del cliente.

    
respondido por el Mehmet Ince 11.11.2015 - 12:14
fuente

Lea otras preguntas en las etiquetas