¿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>'
(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>'
Lea otras preguntas en las etiquetas xss