¿La adición de "http: //" a una cadena proporcionada por el usuario produce una URL segura para usar?

2

¿Es seguro (en términos de vulnerabilidad de XSS) obtener un parámetro X del usuario, evitar sus citas dobles e insertarlo como href?

Pseudo-code:
Y = escape_double_quotes(X);
print '<a href="http://' + Y + '">link</a>'
    
pregunta SeMeKh 24.03.2013 - 20:48
fuente

1 respuesta

2

(La siguiente respuesta se basa en el supuesto de que escape_double_quotes() solo escapa las comillas).

Depende de si el usuario que proporciona el parámetro es diferente del usuario que está viendo el enlace. Si un usuario A proporciona el parámetro, pero otro usuario B puede ver el enlace resultante, entonces el usuario A podría insertar maliciosamente un enlace para explotar al usuario B. Considere el siguiente ejemplo:

www.example.com/transfer_money.php?src=userB&dest=userA , lo que daría como resultado:

print '<a href="http://www.example.com/transfer_money.cgi?src=userA&dest=userB">link</a>'

Otro ejemplo:

></a><a href=javascript:myfunc() , lo que resulta en:

print '<a href="http://" ></a><a href=javascript:myfunc()>link</a>'

    
respondido por el Jared Ng 24.03.2013 - 20:58
fuente

Lea otras preguntas en las etiquetas