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)은 null 허용 부울입니다. 그것은 Fortify가 좋아하지 않는 것입니다 (나는 contact이 자바 스크립트에서 전달 된 객체이기 때문에 생각합니다).

나는 HttpUtility.HtmlEncode으로 혼란스럽고 HasOpenAccount 줄에 추가하면 요새화 문제가 중급에서 중급 (유효성 검사 불량)으로 바뀝니다.

나는 그걸로 살 수 있지만 이것은 정말로 문제가되지 않는 것처럼 보입니다. nullable boolean은 어떻게 악의적 인 공격에 취약 할 수 있습니까? 이것이 가능성입니까, 아니면 요새화가 미친 것입니까?

는 업데이트 :

나는이 null 인 경우 false를 돌려

HasOpenAccount = contact.HasOpenAccount ?? false

HasOpenAccount = contact.HasOpenAccount

을 변경하여이 문제를 해결했습니다. 이것은 Fortify 문제를 완전히 수정했습니다. 분명히 그것은 nullables을 좋아하지 않는다? 내 원래의 질문은 여전히 ​​있지만, 심지어 진짜 문제입니까?

답변

0

모두가 부울 값인 경우 위양성 (false positive)이라고 말한 다음 문제가 아닌 것으로 플래그를 지정합니다 (및/또는 억제).

+0

정말로 문제가되는 경우에만 문제를 해결하는 것에 대해 걱정하지 않습니다. 거짓 긍정처럼 보이지만, 내가 뭔가를 간과하고 있는지 나는 모른다. – Bobo

관련 문제