È sicuro (in termini di vulnerabilità XSS) ottenere un parametro X dall'utente, sfuggire alle sue doppie quotazioni e inserirlo come href?
Pseudo-code:
Y = escape_double_quotes(X);
print '<a href="http://' + Y + '">link</a>'
(La seguente risposta si basa sul presupposto che escape_double_quotes()
sfugge solo tra virgolette.)
Dipende se l'utente che fornisce il parametro è diverso dall'utente che sta visualizzando il collegamento. Se un utente A fornisce il parametro, ma un altro utente B può vedere il collegamento risultante, l'utente A potrebbe inserire un link malintenzionato per sfruttare l'utente B. Considera il seguente esempio:
www.example.com/transfer_money.php?src=userB&dest=userA
, che risulterebbe in:
print '<a href="http://www.example.com/transfer_money.cgi?src=userA&dest=userB">link</a>'
Un altro esempio:
></a><a href=javascript:myfunc()
, che risulta in:
print '<a href="http://" ></a><a href=javascript:myfunc()>link</a>'
Leggi altre domande sui tag xss