2013-06-27 3 views
0

일반적으로 보안 취약점을 감지하기 위해 veracode를 사용하여 코드 변경 사항을 검사합니다.이 C : 아웃에서 XSS를 피하는 방법은 무엇입니까?

out.println(<%= custFunctionality %>); 

음 베라 코드는 스캔 나를는 보안 결함을 구성 있음을 알려 : 지금은 custFunctionality라는 문자열을 수집하고 이전에 내가 같이 JSP이 표시 된 DB의 문자열이있다.

그래서 내가 여기 c: out을 사용 :

<c:out escapexml='false' value='${custFunctionality }'/> 

이제 문제는 여기 문자열가 나는 페이지와 내가 포기하지 않는 경우에 표시해야합니다 특수 문자를 HTML 관련 표시로 구성되어 있다는 것입니다 escapexml='false' 해당 문자 및 마크 업은 구체화되지 않습니다. 그러나 여기에 코드에 escapexml='false' 문자열이 있기 때문에이 파일을 다시 스캔 한 후에 발견 한 veracode의 보안 결함을 구성합니다.

누구나 나를이 늪에서 대체 솔루션으로 제안 할 수 있습니까?

+0

모든 솔루션 사람들이 있습니까? –

+0

"HTML 관련 마크 업과 특수 문자로 구성된 문자열"- 페이지 HTML의 일부로 브라우저에 의해 해석되거나 시각적으로 사용자에게 표시되도록해야하는지 명확하게 설명 할 수 있습니까? – u2702

+0

@ u2702 : 시각적으로 그리고 때로는 HTML 페이지의 일부로 사용자에게 표시됩니다. –

답변

0

당신이 원하는 것은 두 가지입니다. 특수 문자를 사용하여 시각적으로 사용자에게 표시하는 것은 매우 간단합니다. 마크 업으로 페이지에 안전하게 삽입하는 것은 더욱 복잡합니다.

비주얼 디스플레이 :

당신이 여기에서하고 싶은 브라우저가 브라우저에 표시하는 방법으로 그것을 마크 업에서 해석 탈출 (또는 인코딩)을 원하는 특수 문자를 가지고하는 것입니다 그것을해야 그냥 표시됩니다. Alex는 StringEscapeUtils를 추천했습니다. (각각의 상황이 반드시 CSS와 자바 스크립트에 대해 작동하지 않습니다 html로 작동 그래서 뭐 탈출에 대한 자신의 규칙을의 것을 명심하십시오.)

마크 업 삽입 :

을이 경우에 당신이 어떤 검증을 할 필요가 페이지가 작동하는 방식에 영향을주는 내용을 삽입하지 않도록 입력합니다. 일부 ... 마크 업을 삽입하는 것이 좋습니다. 자바 스크립트를 삽입하는 것이 위험합니다. 문제는 사람들이 필터를 피하려고하는 모든 방법을 포착하는 것입니다. 귀하의 사이트가 충분히 흥미로운 경우 사람들은이 기능을 이용하려고합니다.

관련 문제