Microsoft Anti XSS Library, кодирующая амперсанды? - PullRequest
0 голосов
/ 11 октября 2011

В настоящее время я использую библиотеку Microsoft AntiXSS и использую метод GetSafeHtmlFragment следующим образом:

public static string SanitizeHtml(this string s)
{
    return Sanitizer.GetSafeHtmlFragment(s);
}

Однако, если я передам строку, подобную этой:

black & white

... кодирует амперсанд, поэтому становится:

black & white

Это нормальное поведение для этой библиотеки?Есть ли способ предотвратить кодирование этого символа?

Ответы [ 2 ]

1 голос
/ 24 марта 2017

Я не думаю, что это лучшее решение.Если вы используете HTML.Raw (), то вы оставляете себя уязвимым для атак XSS, если только вы не можете быть абсолютно уверены, что строка безопасна все время и для любого использования HTML.Raw ().

0 голосов
/ 11 октября 2011

Это нормальное поведение для этой библиотеки?

Да, это исправляет ваш HTML, так как вы используете GetSafeHtmlFragment.В противном случае вы бы получили недействительный фрагмент HTML.В HTML символ & имеет особое значение.Я не думаю, что это поведение можно изменить.

...