https://groups.google.com/forum/#!topic/ksug/beKEpyVkMHo
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 공격 방어를 하는 방법에 대해서 알려주시면 감사하겠습니다.
다들 좋은 하루 되십시오!
SSaMKJ |
16. 6. 27. |
html code에 <csrf/> 추가해서 쉽게 해결했었던 기억이 있는데,
<html> 이 전혀 없나보군요??
잘되는지 확인은 못 했지만 찾은 링크 공유드려요.
수고하세요.
/******************************
* Kim Jin Sam
******************************/
2016. 6. 27., 14:30, 노백린 <baeklin...@gmail.com> 작성:
화면에서는 모든 Ajax요청에 대해서
csrfHeader = $("meta[name='_csrf_header']").attr("content");
csrfToken = $("meta[name='_csrf']").attr("content");
xhr.setRequestHeader(csrfHeader, csrfToken) 와 같은 코드를 추가하였습니다.
여기서 궁금증이 생기는게
0
0
16. 6. 29. narusas 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>님이 작성: > |
Ju-yeon Yu |
16. 6. 29. |
이미 해결하셨겠지만 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, 노백린 님의 말:
- 받은메일 표시 -
0
0
댓글 ( 4)
댓글 남기기