반응형
아주 오래전에 개발된 웹페이지를 맡게되어서 개발중인데, 취약점으로 엄청난 지적들이 나오고 있어서 고통을 받고 있다...
mybatis $문제도 문제지만 jsp에서 ${}로 데이터를 받은부분에서 XSS악성스크립트로 replace 문자열 치환을 해달라는 요청이 있어서 바꾸고 있는중인데 jstl에서 replcae사용법에 대해 알아보겠다.
먼저 fn 태그스크립트를 추가해준다.
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
기존)
<c:forEach items="${list}" var="list" varStatus="i">
<tr>
<td>${list.no}</td>
</tr>
</c:forEach>
replace 처리)
<c:forEach items="${list}" var="list" varStatus="i">
<tr>
<td>${fn:replace(fn:replace(list.no, '<', ''), '>', '')}</td>
</tr>
</c:forEach>
td태그 사이의 값을 보면 된다.
먼저 "<" 특수문자를 공백으로 치환후 한번더 replace하면서 ">"로 변경처리 해준다.
${fn:replace(대상, '대상 문자열', '변경할 문자열')}
fomatter와 같은 태그로 묶어서 날짜표현을 하던 데이터의 경우
기존)
<fmt:formatDate var="sDt" pattern="yyyy-MM-dd" value="${list.startDate}" />
replace 처리)
<fmt:formatDate var="sDt" pattern="yyyy-MM-dd" value="${list.startDt}" />
${fn:replace(fn:replace(sDt, '<', ''), '>', '')}
var에 먼저 패턴에 따른 형변환을 처리한 후 변수값을 이용하여 replace를 해주면 적용이 가능하다.
반응형
'JAVA' 카테고리의 다른 글
JAVA - CSV 파일 읽기(한글 읽기, 한글 깨짐 방지, CSV 인코딩 UTF-8 저장) (0) | 2019.12.11 |
---|---|
Java - 오늘, 어제, 이번달, 올해, 지난해 등 날짜 구하기 (0) | 2019.11.29 |
JAVA - request.getParameter 모든 값 확인하기(key, value 확인) (0) | 2019.11.29 |
JAVA - ajax JSON 데이터 통신하기 (0) | 2019.11.21 |
JAVA - 싱글톤(Singleton), getInstance() 메소드 (1) | 2019.10.16 |