본문 바로가기

Spring

CSRF(Cross Site Request Forgery)

CSRF 이란 사이트 간 위조 요청을 통한 공격으로

CSRF 공격은 사용자가 의도치 않게 등록, 수정 등 특정 웹 사이트에 위조된 요청을 보내는 것을 의미한다.

 

Spring에서는 CSRF 방어를 위해 Spring Security를 통해 CSRF Token을 발급한다.

게시물을 만들 때 필요한 form 태그이다. Spring Security를 켜지 않았을 때와는 다르게 value 속성에 어떠한 값이 들어있다.

이것은 CSRF Token으로써 해당 토큰의 값이 정확한지 검증하고, 검증되지 않으면 게시물이 생성되지 않도록 Spring Security가 Block해준다.

 

예시를 보자.

https://codepen.io/jae-soon/pen/qBoLXMp

 

qBoLXMp

...

codepen.io

해당 사이트를 통해 확인을 해볼 수 있는데, 만약 CSRF Token이 잘못되어 있으면 전송이 되지 않는다. 한번 해보자.

제목은 ㅎㅇ 내용은 ㅂㅇ를 넣어보겠다. CSRF Token은 잘못되어 있다.

403 Forbidden이 뜨면서 막아준다.

 

토근값이 정확하다면 어떻게 될까?

저장이 잘 된다!

'Spring' 카테고리의 다른 글

[Spring]기능 - 작성자 출력하기  (0) 2022.08.22
[Spring]기능 - 회원가입  (0) 2022.08.18
[Spring]Spring Security  (0) 2022.08.18
[Spring]기능 - 페이징 기능  (0) 2022.08.17
[Spring]기능 - 네비게이션 바  (0) 2022.08.17