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