다음과 같이 브라우저가 세션 쿠키를 자동 첨부하는 상태 변경 요청을 공격 사이트가 위조할 수 있다. CSRF를 막기 위한 핵심 대책 세 가지를 쓰시오.
POST /profile/email HTTP/1.1
Host: example.test
Cookie: session=...
Content-Type: application/x-www-form-urlencoded
email=new@example.test모범답안
서버가 예측 불가능한 CSRF 토큰을 발급해 요청 값과 검증하고, 세션 쿠키에 적절한 SameSite 속성을 설정한다. 또한 Origin 또는 Referer가 허용된 출처인지 확인한다.
풀이와 판단 근거
CSRF는 사용자가 인증된 브라우저를 공격자가 의도한 상태 변경 요청에 이용하는 공격이다. 세션과 연결된 예측 불가능한 토큰은 공격 사이트가 올바른 요청 값을 만들지 못하게 하고 SameSite 쿠키는 교차 사이트 요청의 쿠키 전송을 제한한다.
Origin 또는 Referer 검증을 함께 적용하면 출처가 다른 요청을 추가로 걸러낼 수 있으며, GET 요청으로 상태를 바꾸지 않는 기본 설계도 필요하다.
자주 틀리는 지점
- CORS 설정만으로 CSRF가 완전히 차단된다고 판단
- 토큰을 고정된 사용자 ID로 생성
- 상태 변경을 GET으로 제공하면서 SameSite만 의존
자동 판정 방식
한글·영문 동의어와 문항별 필수 개념을 확인하며, 정답 단어가 부정되거나 반대 개념과 함께 쓰이면 자동 정답으로 확정하지 않습니다. 부분점수는 ITPASSLAB의 학습용 예상 점수입니다.