JSTL에서 Java 함수 호출하기

2021. 3. 24. 22:18Web Programming

'

보통 Java단에서 XSS 조치를 하는 편인데 이번에 JSTL에서 XSS 조치할 일이 생겼습니다.

 

TLD로 설정해서 호출하는 방법을 사용할 수도 있지만 

몇 개 안 되는 화면이라서 Java에 있는 static 메소드를 직접 호출하여 처리하는 방법을 택하였습니다.

 

선언부

먼저 JSTL core tag와 호출할 자바클래스를 import합니다.

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

<%@ page import="com.test.CommonUtil" %>

 

기존 소스

기존에 JSTL에서 data.content를 받아서 출력하는데 XSS 취약점이 있어서 조치를 해야 하는데

CommonUtil.cleanXSS() 함수를 호출하여 조치할 수 있는 상황입니다.

<textarea id="content" name="content" style="width:100%">${data.content}</textarea>

 

Java 함수 호출

data.content 값을 content 라는 변수에 새로 할당하고 CommonUtil.cleanXSS() 처리 결과를 content 에 저장합니다.

그리고 content 를 출력하면 됩니다.

<c:set var="content" value="${data.content}" />
<%
	String content = (String) pageContext.getAttribute("content");
	content = CommonUtil.cleanXSS(content);
	pageContext.setAttribute("content", content);
%>

<textarea id="content" name="content" style="width:100%">${content}</textarea>

 

 

반응형