¿Cómo evito que la URL abra la vulnerabilidad de redireccionamiento? [duplicar]

-4

He creado un código vulnerable para la vulnerabilidad de redireccionamiento abierto, pero ahora quiero protegerlo. Pero desafortunadamente, no lo encontré en Google, así que decido venir aquí.

Entonces, este es mi código de archivo html, en el que proporciono el siguiente parámetro .

<html>
<form action="/demo/userin2.php?next=http://somedomain.com" method="POST"></tr>



<tr><center><b><td>Username</b> <td><input type="text" name="username" value=""></td><br></tr>
<tr><b><td>Password </b> <td><input type="password" name="password" value=""></td><br></tr>
</td>
</tbody>
</table>
<input type="submit" name="go" value="go"></fieldset>
</center>
</form>
</html>

Ahora mi archivo userin2.php está debajo: -

<?php 
session_start();

?>
<html>
<style>body {
    background-color: #C0C0C0;
}
</style>
<center><img src="/dashboard/demo.jpg" width="500" height="100"></center>

<?php


$conn=mysqli_connect('localhost', 'sqltest', 'sqltest', 'sqltest') or die ("failed to connect to db". mysql_
$query = "SELECT Username, Password, userid FROM userinfo WHERE username=? AND password=?"; 


// MY PHP CODE RELATED TO DATABASE QUERY

echo "Good to see you again Mr. ".$Username;         // finally we are successfully fetch the row now its time to call its value like this. 
}
else{
echo "user not found";
}
?>
**<?php 
$redirect = $_GET['next'];
header("Location: " . $redirect);
?>**
</html>

He resaltado la parte principal de mi archivo PHP.

Eso es todo lo que tengo. Ahora ¿Cómo puedo asegurarlo?

Espero haber explicado con éxito mi pregunta AHORA.

    
pregunta januu agrawal 29.12.2017 - 10:44
fuente

1 respuesta

2

La diferencia entre una vulnerabilidad de redireccionamiento abierto y una redirección no vulnerable es que esta última solo permite redirecciones aceptables para la aplicación. Qué redirecciones son aceptables y cómo se verifica la validez depende de la aplicación específica. En algunos casos, puede tratarse de una lista blanca que usa una expresión regular, a veces puede requerir una búsqueda en la base de datos, a veces el parámetro url está protegido contra modificaciones mediante el uso de un HMAC y probablemente haya otros casos.

En esencia, primero debe saber y describir en detalle lo que se considera un objetivo válido para las redirecciones en su aplicación específica. Solo así podrá implementar el comportamiento requerido de forma segura.

    
respondido por el Steffen Ullrich 29.12.2017 - 11:01
fuente

Lea otras preguntas en las etiquetas