CSRF(사이트 간 요청 위조, Cross-site Request Forgery) 공격은 사용자가 자신의 의지와 상관없이 공격자가 의도한 행위를 특정 웹사이트에 요청하도록 하는 것을 의미한다.
세션ID를 Set-Cookie헤더에 저장. 클라이언트는 쿠키를 저장하고 요청마다 자동으로 전송
악성 스크립트가 포함된 페이지에 접속 시, 악성 스크립트 시행
특정한 요청(결제, 비밀번호 변경 등)을 공격 대상 서버로 보내도록 구현되어 있으며, 해당 요청은 브라우저에 의해서 자동으로 쿠키에 저장된 세션ID와 함께 전달된다.
Q. CSRF공격 방어 방법은?
1. HTTP헤더 중 Referer요청 헤더를 사용하는 방법 : 현재 요청을 보낸 페이지의 주소를 확인하여 해당 주소와 호스트헤더를 비교
2. 템플릿 엔진 기술 사용 시, CSRF토큰 방법 사용 : 페이지를 생성하기 이전에 사용자 세션에 임의의 CSFR토큰을 저장. 그리고 특정 API 요청에 대한 제출 폼을 생성할 때 해당 CSRF토큰값이 설정된 input태그를 추가
이외에도 Samesite쿠키 사용 / 브라우저의 SOP정책 사용 등을 고려한다.
'cs(with 매일메일)' 카테고리의 다른 글
| [251218목] JWT 특징와 주의 사항을 설명해주세요. (0) | 2026.01.13 |
|---|---|
| [251217수] 트랜잭셔널 아웃박스 패턴에 대해서 설명해주세요. (0) | 2026.01.13 |
| [251215월] NAT기능을 사용하는 이유를 알고 계신가요? (0) | 2026.01.13 |
| [251212금] 연결 리스트에 대해서 설명해주세요. (0) | 2026.01.13 |
| [251211목] 함수형 프로그래밍에 대해서 설명해주세요. (0) | 2026.01.12 |