송민준의 개발노트

(Spring) XSS 필터 - jsoup 본문

웹/Spring Framework

(Spring) XSS 필터 - jsoup

송민준 2020. 1. 16. 13:59

기존에는 간단하게 아래처럼 필터를 했는데 한계를 느끼고 jsoup를 사용해봤다.

private String replaceParameter(String param) {
		String result = param;
		if(param != null) {
			result = result.replaceAll("<","&lt;");
			result = result.replaceAll(">","&gt;");
			result = result.replaceAll("[(]","&#40;");
			result = result.replaceAll("[)]","&#41;");
		}
		return result;
	}

 

pom.xml에 추가

<dependency>
			<groupId>org.jsoup</groupId>
			<artifactId>jsoup</artifactId>
			<version>1.12.1</version>
</dependency>

https://mvnrepository.com/artifact/org.jsoup/jsoup

 

 

service.java

	@Override
	public void insert_board(Board board) {
		board.setBOARD_SUBJECT(xss_clean_check(board.getBOARD_SUBJECT()));
		dao.insert_board(board);
	}

 

method    => 입력 받은 값을 XSS 공격이 감지되었습니다. 라고 바꿔준다.

private String xss_clean_check(String value) {
		String safe_value = Jsoup.clean(value, Whitelist.basic());
		if(safe_value.equals("") || safe_value == null) {
			safe_value = "XSS 공격이 감지되었습니다.";
		}
		return safe_value;
}