Sto cercando modi per utilizzare .NET per prevenire gli attacchi XSS e ho trovato i seguenti metodi per codificare i dati:
string asdf = WebUtility.UrlEncode(code);
string asdf1 = HttpUtility.UrlEncode(code);
string asdf1a = HttpUtility.UrlEncodeUnicode(code); // OBSOLETE
string asdf1b = HttpUtility.UrlPathEncode(code);
string asdf1c = Uri.EscapeDataString(code);
string asdf1d = Uri.EscapeUriString(code);
string asdf1e = HttpUtility.HtmlEncode(code);
string asdf1f = HttpUtility.HtmlAttributeEncode(code);
(Ho omesso i metodi byte [] ... ma ce ne sono altri)
Dato che ognuno di questi metodi funziona in modo completamente diverso e si trova in classi completamente diverse, suppongo che sia facile causare un problema XSS dato il mix sbagliato di scelte.
Per una determinata situazione, quando è opportuno utilizzare un determinato metodo di codifica? Perché?