𝓒𝓢𝓡𝓕

2024. 8. 2. 21:06TIL

✔오늘 배운 중요한 🔑 point

  • CSRF는 다른사이트에서 유저가 보내는 요청을 조작하는 공격이다.
  • CSRF 토큰은 서버에서 생성되고 클라이언트와 공유되는 인증 값이다.

🎯 오늘 배운 내용

 

CSRF (Cross - Site Request Forgery)

공격자가 사용자의 인증 정보를 이용해 사용자가 의도하지 않은 요청을 웹 애플리케이션에 보내는 공격.
이 공격은 사용자가 특정 웹사이트에 로그인한 상태에서 발생하며, 공격자는 사용자의 권한으로 악의적인 요청을 전송할 수 있다.

 

 

CSRF 예시

A라는 사용자가 http://sober-wachu.com/ 에 접속하여 로그인을 진행을 한 상태이고

 

Wachu

 

sober-wachu.com

 

B라는 공격자가 EMAIL혹은 다른 사이트의 게시글에 https://www.google.com/s?????q=RDS&oq=???&gs_lcrp=???????  같은 링크를 클릭하도록 유도를 한다.

A라는 사용자가  http://sober-wachu.com/ 에 로그인이 되어있는 상태에서 해당 링크를 클릭하게 된다면  http://sober-wachu.com/에 자동으로 특정 요청(공격자에게 10억을 이체) 를 보내게 된다.

 

 

CSRF 방지법

 

CSRF 토큰

CSRF 토큰은 각 사용자 세션에 대해 고유하게 생성된 난수 값이기 때문에 요청마다 이 토큰을 확인하여 유효성을 검증한다. 기본적으로 Spring Security에서도 제공한다

 

Same Site

SameSite 속성을 strict,lax 등으로 설정하여 크로스 사이트 요청시 쿠키가 전송되지 않도록 한다.

 

Referer

HTTP Referer 헤더는 웹페이지 요청시 어디서 요청을 보내는지를 나나태는 정보이기 때문에 보조적으로 사용할 수 있다.

 

 

🤔 어떻게 활용할까?

현재 서비스에 적합한 방법을 사용하여 보안정책을 정해야겠다.

📓 오늘의 한줄

"Don't go through life, grow through life."

- Eric Butterworth -