CS(Computer Science, 컴퓨터 공학)/네트워크
[Network(네트워크)] CSRF(Cross Site Request Forgery, 사이트 간 요청 위조) _디버깅의 눈물
디버깅의 눈물
2023. 4. 18. 14:56
CSRF(Cross Site Request Forgery, 사이트 간 요청 위조)란?
‘사이트 간 요청 위조’는 공격자가 인증된 사용자의 권한을 빼앗아, 특정 웹 사이트에 사용자가 의도치 않은 악의적인 요청(request)을 하도록 하는 것입니다.
사용자가 웹 사이트에 로그인한 상태에서 사이트 간 위조 요청 공격 코드가 삽입된 페이지를 열게 됩니다. 그러면 공격 대상이 되는 웹 사이트는 '위조된 공격 명령을 믿을 수 있는 사용자로부터 발송된 것으로 판단해' 위험에 노출됩니다.
CSRF의 과정
1.공격자는 사용자가 신뢰하는 웹 사이트에 악성 코드를 삽입한 게시물을 등록합니다.
2.로그인이 되어 있는 사용자는 해당 게시물의 조회를 요청하면서 악성 코드를 실행하게 됩니다.
3.접속된 악성 웹 사이트에서 공격자는 사용자의 권한을 이용해 다른 웹 사이트로 악의적인 요청을 전송합니다.
이러한 과정으로 인해 공격자는 사용자의 권한으로 다른 웹 사이트에서 원치 않는 작업을 수행할 수 있습니다.
예를 들어, 사용자가 은행 웹 사이트에 로그인한 상태에서 악성 웹 사이트에 방문하면, 악성 웹 사이트에서는 사용자의 계좌에서 돈을 인출하는 등의 작업을 수행할 수 있습니다.
CSRF의 예방법
이를 막기 위한 방법에는 대표적으로 HTTP Referrer 검증이 있습니다. HTTP Request의 referrer를 확인하여 현재 도메인과 일치하는지 확인하는 방법입니다. 같은 도메인 상에서 요청이 들어오지 않는다면 차단하도록 하는 것입니다.