-- JSP, SPRING
SPRING CSRF 구현
어린왕자악꿍
2020. 4. 8. 13:12
보통 SPRING에서 CSRF방어를 위해 spring-security를 이용하는데, spring 프로젝트에서 spring-security를 사용하지 않았던 프로젝트에 CSRF를 구현해야 하는 일이 있었다.
이 시점에서 spring-security를 도입하기가 어려울 경우, 아래와 같이 CSRF를 구현할 수 있었다. 간략히 말하자면 인터셉터에서 csrf 토큰을 생성하여 세션에 저장 후 view로 csrf 토큰을 전송하고, post 전송 시 csrf를 전달하여 비교하는 방식이다.
많은 설명은 참조사이트에 설명되어 있으니 확인 바란다.
- CSRFTokenManager.java
- CSRFRequestDataValueProcessor.java
- CSRFInterceptor.java
설정파일에 아래의 bean을 등록한다.
<bean name="requestDataValueProcessor" class="kr.co.xxx.common.interceptor.CSRFRequestDataValueProcessor"/>
설정파일에 아래의 interceptor를 등록한다.
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="*"/>
<bean class="com.xxx.common.interceptor.CSRFInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>