-
[Spring Security][DB]CSRFSpring-diary/WEB 2020. 2. 25. 22:46
정의
- Cross site request forger의 약자
- 웹 사이트의 취약점을 이용하여 이용자가 의도하지 않은 요청을 통한 공격을 의미
- http 통신의 Stateless 특성을 이용해 쿠키 정보만으로 공격할 수 있다.
해결책
- CSRF Token 정보를 Header 정보에 포함하여 서버 요청을 시도
- Spring security로 해당 설정을 편리하게 할 수 있음.
*기본 process
Spring Security의 CSRF protection은 Http 세션과 동일한 생명 주기를 가지는 토큰을 발행한 후
Http 요청-Patch,Post,Put,Delete 메소드-마다 발행된 토큰이 요청에 포함-Http헤더 또는 Parameter-되어 있는지 검사하는
방식으로 되어있다.
*쿠키를 사용해 검증하는 방식
Spring Security에서는 토큰의 저장소로 Cookie를 사용하는 방식이 있다.
Http헤더 또는 Parameter를 통해 전송된 토큰을 쿠키를 통해서 전송된 토큰과
검증하는 방식으로 진행된다.
-쿠키로 저장하는 방식은 추천하지 않는 방식이니 API참조-사용법
- el 표현식을 사용한다면 Form의 파라미터로 추가한다.
- 만약 로그인시 생성된 계정의 JSESSIONID 토큰을 가지고 게시판 글을 작성하게 되면 다음에
수정 혹은 삭제시 토큰의 일치 여부를 판단 후 변경이 가능하도록 만들 수 있다.
'Spring-diary > WEB' 카테고리의 다른 글
Spring Security+MyBatis로 Spring 게시판 만들기 2 (0) 2020.03.01 Spring Security+MyBatis로 Spring 게시판 만들기 1 (0) 2020.03.01 [Spring Security][DB][암호화] 비밀번호 암호화하기 (0) 2020.02.25 [Spring Security][DB][권한부여] <security:jdbc-user-service> (0) 2020.02.25 [Spring Security][DB] DB와 연동해 로그인 하기 (0) 2020.02.25