2014-10-30 2 views
0

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? Мой оригинальный вопрос все еще стоит, хотя это даже реальная проблема?

ответ

0

Если они все являются логическими, то просто сделайте комментарий, что это ложный позитв, а затем отметьте его как «Не проблема» (и/или «Подавите его»).

+0

Я не беспокоюсь об исправлении проблемы, просто если это действительно проблема. Это похоже на ложный позитив, но я не знаю, не замечу ли я что-то. – Bobo