기능<?xml:namespace prefix = o /><?xml:namespace prefix = o /> |
태그 |
prefix |
EL 지원 |
catch , out , remove , set |
c |
흐름 제어 |
choose (when , otherwise) , forEach , forTokens , if | |
URL 관리 |
Import (param) , redirect (param) , url (param) |
가장 많이 쓰게 되는 것은 JSP 의 표현식을 대체하는 <c:out/> 이다. 다음과 같은 형식을 갖고 있다.
body 없는 경우 <c:out value="value" [escapeXml="{true|false}"] [default="기본값"] /> body 있는 경우 <c:out value="value" [escapeXml="{true|false}"] /> 기본값 </c:out> |
[] 으로 둘러 쌓인 부분은 생략 가능한 부분이다. value 와 default 값은 일반 문자열이나 EL 이 들어간다. value 안에 JSP의 표현식을 사용하려 한다면 RT 기반의 <c_rt:out> 을 사용해야 된다는 것은 이전 예제에서 살펴 보았다.
escapeXml 속성은 값 중에 포함된 < > & ' " 문자들을 각각 < > & ' " 로 출력한다. 생략될 경우 true 가 기본 값이다.
null 값의 처리에 대해서 JSP 의 expression 의 경우는 "null" 문자열로 출력이 되었던 것을 jstl의 스펙에서는 이 경우 빈 문자열("")또는 기본값으로 처리한다고 명시되어있다.
원본글 : http://blog.naver.com/phrack?Redirect=Log&logNo=80053722757
[XSS 취약점 보완] Cross Site Scripting 방지 기법 - JSTL Taglib
![]() ![]() 2008/07/08 16:21
|
XSS를 막기 위한 방법 중 JSTL Taglib을 사용하는 방법은 다음과 같다.
JSP에서 JSTL Core를 사용하기 위한 선언을 한다.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> |
그리고 HTML Entity로 치환이 되어야할 부분에 대해 escapeXml 속성을 true로 부여한다.
<% String greeting = "<b>hello, world!</b>"; request.setAttribute("greeting", greeting); %> <h2>escapeXml false</h2> <c:out escapeXml="false" value="${greeting}" /> <h2>escapeXml true</h2> <c:out escapeXml="true" value="${greeting}" /> <h2>default</h2> <c:out value="${greeting}" /> |
실제로는 escapeXml 속성의 default가 true라 지정하지 않아도 된다.
결과는 다음과 같다.
SSISO Community