2017-03-08 8 views
-2

Fortify Scan을 행복하게 해주는 패치를 아는 사람이라면 누구든지 아래의 "print (x)"플래그에 교차 사이트 스크립팅의 취약성을 알리지 않습니까? (그것이 매개 변수에서 오는 어쩌면 때문에) 및 유효성을 검사 또는 XSS를 방지하기 위해 값을 암호화하는 루틴을 찾고Fortify Scan, Java print() 문자열, 교차 사이트 스크립팅

public void println(String x) { 
    synchronized (lock) { 
     print(x); 
     println(); 
    } 
} 
+0

나는이 도구가 그 결정을 내리는 데 많은 수의 컨텍스트 정보를 사용하고 있음을 확신합니다. 너는 우리에게 그것도 엿볼 수 없다. 그러한 의견을 어떻게 도울 수있을 것이라고 생각하십니까? – GhostCat

+0

x가 일부 http 요청 매개 변수에서오고 있으며이 PrintWriter 보이는 클래스가 http 응답 스트림에 쓰고 있습니다. – MeBigFatGuy

+0

MeBigFatGuy가 정확합니다. 이 클래스는 java.io.PrintWriter를 확장하고 javax.servlet.http.HttpServletResponse에 대한 출력을 생성합니다. –

답변

0

은 포티이에 입력이 오염되어 믿고있다. 유효성 검사가 화이트리스트 검증으로 바람직하게 수행해야합니다, 당신은 (HTML 속성? 자바 스크립트?) 경우

그것 명확하지 인코딩의 컨텍스트를 알고있을 때 인코딩이 출력시에 실시되어야한다고

주 이 중 하나를 수행하려면이 루틴에 충분한 컨텍스트가 있어야합니다. 따라서 데이터 흐름에서 더 적절한 곳에서이 작업을 수행해야 할 수도 있습니다. 또한 Fortify에 (규칙을 통해) 유효성 검사 또는 인코딩에 사용한 루틴이 XSS에 대한 정리 루틴임을 알릴 필요가 있습니다.

그러면 Fortify가 행복해지며 코드가 더 안전해질 것입니다.