문제
크로스 사이트 요청 위조(CSRF, Cross-Site Request Forgery) 공격의 원리를 설명하고, 이를 방어하기 위한 대응 방안을 3가지 이상 서술하시오.
정답
CSRF는 사용자가 인증된 웹사이트에 로그인한 상태에서 공격자가 악의적인 웹사이트나 이메일을 통해 사용자 모르게 피해 사이트로 위조된 요청을 전송하는 공격이다. 대응으로는 1) CSRF 토큰 검증: 서버에서 생성한 무작위 토큰을 폼에 포함시켜 요청 시 검증, 2) Referer 헤더 검증: 요청의 출처를 확인하여 신뢰할 수 있는 도메인인지 검사, 3) SameSite 쿠키 속성 설정: 크로스 사이트 요청 시 쿠키 전송을 제한, 4) 중요한 작업에 대한 재인증 요구 등이 있다.
위조된 요청CSRF 토큰Referer 검증SameSite 쿠키재인증
해설
CSRF는 사용자의 세션을 악용하여 의도하지 않은 요청을 실행시키는 공격이다. CSRF 토큰은 서버에서 생성한 예측 불가능한 값으로 정당한 요청임을 검증하며, SameSite 쿠키는 브라우저 레벨에서 크로스 사이트 요청을 제한한다.