Come si impedisce la vulnerabilità di reindirizzamento URL aperto? [duplicare]

-4

Ho creato un codice vulnerabile per la vulnerabilità di reindirizzamento aperto, ma ora voglio assicurarlo. Ma sfortunatamente non ho trovato su google quindi decido di venire qui.

Quindi, questo è il mio codice di file html, in cui fornisco il parametro successivo .

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

Ora il mio file userin2.php è il seguente: -

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

Ho evidenziato la parte principale del mio file PHP.

Quindi questo è tutto ciò che ho. Ora Come posso essere sicuro?

Spero di riuscire a spiegare la mia domanda ADESSO.

    
posta januu agrawal 29.12.2017 - 10:44
fonte

1 risposta

2

La differenza tra una vulnerabilità di reindirizzamento aperta e un reindirizzamento non vulnerabile è che quest'ultimo consente solo reindirizzamenti accettabili per l'applicazione. Quali reindirizzamenti sono accettabili e come viene verificata la validità dipendono dall'applicazione specifica. In alcuni casi potrebbe essere una lista bianca usando un'espressione regolare, a volte potrebbe richiedere una ricerca nel database, a volte il parametro url è protetto dalle modifiche utilizzando un HMAC e probabilmente ci sono altri casi.

In sostanza, devi prima conoscere e descrivere in dettaglio ciò che è considerato un obiettivo valido per i reindirizzamenti nella tua specifica applicazione. Solo così puoi implementare il comportamento richiesto in modo sicuro.

    
risposta data 29.12.2017 - 11:01
fonte

Leggi altre domande sui tag