spring security csrf 관련하여 문의드립니다.

2,518 views
Skip to first unread message

노백린

unread,
Jun 27, 2016, 1:30:48 AM6/27/16
to Korea Spring User Group Q&A
현재 프로젝트

Spring Boot + Security로 구성이 되어 있습니다.

안타깝게도 JSP는 사용하지 않고 javascript만 사용중인데(Jquery 와 Thymeleaf 등 사용)

보안 심사 때문에

CSRF를 적용하고자 합니다.


WebSecurityConfigurerAdapter를 상속받은 설정 파일에서

http.csrf().disable() 부분에서 disable를 제거하고 CsrfTokenRepository를 사용하고자 합니다.

로그인 화면에서는

th:name="${_csrf.parameterName}" th:value="${_csrf.token}" 와 같은 코드를 추가하고

그 외의 화면에서는 모든 Ajax요청에 대해서 

csrfHeader = $("meta[name='_csrf_header']").attr("content");
csrfToken = $("meta[name='_csrf']").attr("content");

xhr.setRequestHeader(csrfHeader, csrfToken) 와 같은 코드를 추가하였습니다.

여기서 궁금증이 생기는게

현재 JSP를 사용하지 않는 프로젝트에서 CSRF 방어를 할때 위와 같이 하는게 맞는건지 의문이 들어서 고민입니다.
(모든 화면의 Ajax를 고치기 전에 현재 이렇게 코딩하는게 맞는건지에 대한 의문이 들더군요...)

이상하게 소스가 올라가지 않아서 질문을 이해하시는데 어려움이 생기실까봐 죄송합니다.

JSP를 이용하지 않고 Spring boot+ security사용시 CSRF 공격 방어를 하는 방법에 대해서 알려주시면 감사하겠습니다.

다들 좋은 하루 되십시오!




Kim Jin Sam

unread,
Jun 27, 2016, 3:11:19 AM6/27/16
to ks...@googlegroups.com
html code에 <csrf/> 추가해서 쉽게 해결했었던 기억이 있는데, 

<html> 이 전혀 없나보군요??

잘되는지 확인은 못 했지만 찾은 링크 공유드려요.


수고하세요.




/******************************
* Kim Jin Sam
******************************/

2016. 6. 27., 14:30, 노백린 <baeklin...@gmail.com> 작성:

Jisung Ahn

unread,
Jun 29, 2016, 2:41:50 AM6/29/16
to ks...@googlegroups.com
jQuery를 사용하시면 $.ajaxSetup 를 이용하셔도 됩니다. 
 
http://stackoverflow.com/questions/28417781/jquery-add-csrf-token-to-all-post-requests-data

참고 하시기 바랍니다. 


2016년 6월 27일 오후 4:11, Kim Jin Sam <ssa...@gmail.com>님이 작성:

--
이 메일은 Google 그룹스 'Korea Spring User Group Q&A' 그룹에 가입한 분들에게 전송되는 메시지입니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 ksug+uns...@googlegroups.com에 이메일을 보내세요.
https://groups.google.com/group/ksug에서 이 그룹을 방문하세요.
웹에서 이 토론을 보려면 https://groups.google.com/d/msgid/ksug/173BA64D-FAB9-45BD-8289-98C804301E82%40gmail.com을(를) 방문하세요.

더 많은 옵션을 보려면 https://groups.google.com/d/optout을(를) 방문하세요.

Ju-yeon Yu

unread,
Jun 29, 2016, 5:36:48 AM6/29/16
to Korea Spring User Group Q&A
이미 해결하셨겠지만 Spring Security 문서에 있는 내용 공유해봅니다.

http://docs.spring.io/spring-security/site/docs/4.1.0.RELEASE/reference/htmlsingle/#csrf-include-csrf-token-ajax

2016년 6월 27일 월요일 오후 2시 30분 48초 UTC+9, 노백린 님의 말:
Reply all
Reply to author
Forward
0 new messages