웹/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("<","<");
result = result.replaceAll(">",">");
result = result.replaceAll("[(]","(");
result = result.replaceAll("[)]",")");
}
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;
}