Sto pensando di aggiungere l'abbreviazione URL al mio sito.
Supponiamo che il mio database abbia già memorizzato url
come stringa semplice, che questi dati sono stati forniti dall'utente ed è arbitrario.
Quindi un'implementazione ingenua in PHP potrebbe sembrare un po 'come questa
$url = lookup_url ($_POST['url_id']);
if (null !== $url)
{
header ("Location: ".encode_url($url));
exit ();
}
con un opportuno encode_url per garantire i dati forniti dall'utente sono limitati all'intestazione Location
e non perdono nel resto della risposta HTTP o vengono iniettati nel database o in altro modo.
Ci sono vulnerabilità di sicurezza nel fare un reindirizzamento a un URL arbitrario fornito dall'utente?
EDIT per chiarire, in risposta all'osservazione sensibile di @ UTF-8 - supponiamo che l'utente non interagisca direttamente con la pagina a cui sono reindirizzati. Un utente malintenzionato può violare la mia sicurezza se l'utente segue il collegamento e non fa altro?