본문 바로가기
Develop/Network

[network] CSRF ? 🤔

by 3-stack 2021. 9. 28.

https://email-checker.net

입력값이 실제로 존재하는 이메일인지 확인해주는 서비스를 제공하는 사이트.

이메일 검증시 서버로 보내는 Request 파라미터 값 중 _csrf, CSRF에 대해 알아봤다.

 

1. CSRF?

- 사이트 간 요청 위조(크로스 사이트 요청 위조, Cross-site request forgery, CSRF, XSRF)는

웹 사이트 취약점 공격의 하나로, 사용자가 공격자가 의도한 행위를 특정 웹사이트에 요청하게 한다.

- 사이트간 요청 위조(CSRF)는 특정 웹사이트가 사용자의 웹 브라우저를 신뢰하는 점을 노린다.

사용자가 웹사이트에 로그인 한 상태에서 CSRF 공격 코드가 삽입된 페이지를 열면, 공격 대상이 되는 웹사이트는 위조된 공격 명령이 믿을 수 있는 사용자로부터 요청된 것으로 판단하게 되어 공격 당하게 된다.

출처(https://creativegroundtech.com/what-is-cross-site-request-forgery-csrf/)

 

2. 어떻게방어하지?

1) Referrer 체크

- request의 referrer를 확인하여 domain(eg. naver.com)이 일치하는지 검증.

- 같은 도메인에서 들어오는 요청은 허용하고 나머지는 차단하는 개념.

2) security token 사용(CSRF 토큰)

- 사용자 세션에 임의의 난수값을 저장하고 사용자의 요청마다 해당 난수 값을 포함시켜 전송

- 서버에서 요청 받을 때마다 세션에 저장된 토큰값과 요청 파라미터에 저장된 토큰 일치 여부 검증

 

3. _csrf? 

- 스프링 시큐리니에서 from 태그 사용시 CsrfRequestDataValueProcessor를 사용하여 CsrfToken이 자동으로 들어간다.

 

 

 

댓글