모든 문자열에 JSP/Spring MVC

표시 문자열에서 내 JSP 이 방법:

${someString}

이 문자열 수 있습은 물론,특수 html 문자입니다. 현재 그것을 가능하 HTML 악성 코드를 주입하(예를 들어. 는 경우 someString 는 자바스크립트-<script src...>).

지 확인할 수 있는 방법은 무엇입니까 모든 문자열은 탈출하기 전에 인쇄?

내가 사용하 Spring MVC 및 JSP.

질문에 대한 의견 (4)
해결책

당신이 사용할 수 있[JSTL core][1]:

사용[<c:value="${someString}"/>][2]태그를 표시 문자열입니다. <c:>탈출 HTML 문자를 피할 수 있도록 교차 사이트 스크립트를 지정할 수 있습을 설정하여 특성escapeXml=true. 또 다른 장점은 것을 제공할 수도 있습니다 경우 기본값valuetruenull.

또한 사용할 수 있습니다fn:escapeXml()엘 기능입니다. 을 포함해야 합JSTL functions니다.

또 다른 방법이 될 것입니다,사용자가[ELResolver][3].

사용자 지정할 수 있도록의 변수에 속해상도 동작한 EL 식 평가입니다.

[이 블로그][4]제공합니 작업의 예는 어떻게 할 수 있습니다.


전체 Spring MVC 용을 지정할 수 있습에서 탈출web.xml:


defaultHtmlEscape
   <param-value>true
해설 (5)

제어할 수도 있습니다 이 행동에 페이지 수준에서 사용하는<봄:htmlEscape defaultHtmlEscape="true"/>

해설 (2)

에 JSP/Java 를 사용해야 합니다 이 코드:

에 JSP/HTML:

해설 (1)