JSTL 을 통한 XSS 방지 :: 웹서버를 구축하기 위한 모든것이 담겨 있습니다.[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

웹서버를 구축하기 위한 모든것이 담겨 있습니다.
[1]
등록일:2011-01-26 21:37:42 (0%)
작성자:
제목:JSTL 을 통한 XSS 방지

1. 첫번째 방법

<%pageContext.setAttribute("crlf", "\r\n"); %> <!-- 요 부분을 상단에 추가하고-->

 

${fn:replace(record[4],crlf,"<br/>")} <!-- 요렇게 사용한다 -->

 

2. 두번째 방법

     String content = lst.get(idx).getD_content();
 content = content.replaceAll("<","&lt;");
 content = content.replaceAll(">","&gt;");
 content = content.replaceAll("\\n","<br/>");
 out.println(content);

 

3. 세번째 방법

 

 

1           JSTL Core

 

core 태그를 사용하기 위해서 페이지 상단에 다음과 같이 선언되어야 된다.

 

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>

 

가장 빈번하고 자주 쓰이는 것이다. Core 의 태그들은 다음과 같이 정리된다

 

기능<?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)

 

1.1          <c:out/>

가장 많이 쓰게 되는 것은 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 속성은 값 중에 포함된 < > & ' " 문자들을 각각 &lt; &gt; &amp; &#039; &#034; 로 출력한다. 생략될 경우 true 가 기본 값이다.

null 값의 처리에 대해서 JSP expression 의 경우는 "null" 문자열로 출력이 되었던 것을 jstl의 스펙에서는 이 경우 빈 문자열("")또는 기본값으로 처리한다고 명시되어있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 원본글 : http://blog.naver.com/phrack?Redirect=Log&logNo=80053722757

 

 

[XSS 취약점 보완] Cross Site Scripting 방지 기법 - JSTL Taglib JSP / Servlet

2008/07/08 16:21

복사 http://blog.naver.com/phrack/80053722757

 

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라 지정하지 않아도 된다.

 

결과는 다음과 같다.

 

[본문링크] JSTL 을 통한 XSS 방지
[1]
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=31589
작성자
비밀번호

 

SSISOCommunity

[이전]

Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.