일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Hibernate
- IntelliJ
- Java
- JPA
- shortcuts
- mybatis polygon mapper
- 쿼리
- spring
- 사진
- 엽서
- 좌표계변환
- mysql gis
- 파이어폭스41
- JSON 변환
- Query
- 자바
- 여행
- 캘리그라피
- mybatis
- 위경도계
- mysql polygon
- cubrid
- QGIS
- 단축키
- join
- 큐브리드
- mybatis polygon
- json parser
- 하이버네이트
- 좌표변환
- Today
- Total
쏘댕
[웹 시큐어 코딩] owasp-java-html-sanitizer 적용 본문
#Java #Spring
#Maven
사용자 입력 가능한 input, textarea 등에 스크립트 적용 불가하도록 XSS filter가 필요해서,
owasp-java-html-sanitizer를 이용하여 input 입력 받은 값들의 태그를 모두 제거하도록 하였다.
pom.xml에 디펜던시 추가!
<dependency>
<groupId>com.googlecode.owasp-java-html-sanitizer</groupId>
<artifactId>owasp-java-html-sanitizer</artifactId>
<version>r239</version>
</dependency>
XssStringConverterUtil.java 생성!
import org.owasp.html.Handler;
import org.owasp.html.HtmlPolicyBuilder;
import org.owasp.html.HtmlSanitizer;
import org.owasp.html.HtmlStreamRenderer;
public class XssStringConverterUtil {
public static String doFilter(String source) {
StringBuilder sb = new StringBuilder();
HtmlPolicyBuilder htmlPolicyBuilder = new HtmlPolicyBuilder(); // 모든 태그를 허용하지 않는 상태. 태그는 전부 빈문자로 치환함.
HtmlSanitizer.Policy policy = htmlPolicyBuilder.build(HtmlStreamRenderer.create(sb, new Handler<String>() {
public void handle(String x) {
throw new AssertionError(x);
}
}));
HtmlSanitizer.sanitize(source, policy);
return sb.toString();
}
}
모델의 setter에 적용해서 jsp에서 java로 받아올 때 변환되도록 하였다.
(spring controller에서 모델로 받기 때문에 setter 통해서 들어옴)
public void setDescription(String description) {
this.description = description.isEmpty() ? description : XssStringConverterUtil.doFilter(description);
}
'공부 > Java' 카테고리의 다른 글
[Hibernate] 하이버네이트 - 큐브리드 (0) | 2015.09.01 |
---|---|
개인정보 마스킹처리 (휴대폰번호, 이메일) (0) | 2015.07.20 |
[MyBatis] 두테이블 정보를 한개의 모델로! Join 쿼리로 받기 (0) | 2015.01.09 |
Spring MVC Interceptors Example – HandlerInterceptor and HandlerInterceptorAdapter (0) | 2014.11.13 |
[MyBatis] resultMap collection (2) | 2014.07.10 |