Fortify говорит мне, что у меня есть критическая проблема как уязвимость XSS.Fortify считает, что у меня проблема XSS
Резюме: сценариев межузловыми: Отраженный (вход проверки и представление, поток данных)
Метод DoFoo() в FooController.cs отправляет непроверенные данные в веб-браузере на линии 112, который может приведет к тому, что браузер выполнит вредоносный код.
Это не нравится то, что этот метод возвращает
return new JsonResult
{
Data = new
{
NameChanged = nameChanged,
DatabaseUpdated = true,
HasOpenAccount = contact.HasOpenAccount
}
};
Все тремя из этих значений являются булевыми. Последний (contact.HasOpenAccount
) является нулевым булевым. То, что Fortify не нравится (я думаю, потому что contact
- это объект, переданный из javascript).
Я столкнулся с HttpUtility.HtmlEncode
, и добавление его к линии HasOpenAccount
изменяет проблему с укреплением с критического на средний (плохая проверка).
Я могу жить с этим, но это просто не похоже, что это действительно проблема. Как уязвимость с нулевым значением может быть уязвимой для вредоносных атак? Возможно ли это, или Fortify сумасшедший?
Update:
Я установил это, изменив
HasOpenAccount = contact.HasOpenAccount
в
HasOpenAccount = contact.HasOpenAccount ?? false
вернуться ложным, если оно равно нулю. Это полностью фиксировало проблему Fortify. По-видимому, это не похоже на nullables? Мой оригинальный вопрос все еще стоит, хотя это даже реальная проблема?
Я не беспокоюсь об исправлении проблемы, просто если это действительно проблема. Это похоже на ложный позитив, но я не знаю, не замечу ли я что-то. – Bobo