La preposizione di "http: //" a una stringa fornita dall'utente genera un URL sicuro da utilizzare?

2

È 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>'
    
posta SeMeKh 24.03.2013 - 20:48
fonte

1 risposta

2

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

    
risposta data 24.03.2013 - 20:58
fonte

Leggi altre domande sui tag