CSRF(Cross-Site Request Forgery, 사이트 간 요청 위조)

  • 정의: 사용자가 자신의 의지와 무관하게 공격자가 의도한 요청을 웹 애플리케이션에 보내게 하는 보안 공격

  • 공격 예시

    1. 사용자가 웹 애플리케이션에 로그인한 상태 (쿠키 인증 세션 유지 중)

    2. 공격자가 사용자를 악성 페이지로 유도

    3. 피해 웹 애플리케이션이 요청 위조를 검증하지 않음

  • 방어 방법

    • CSRF Token 사용
      • 서버가 임의의 토큰을 발급해 HTML 폼에 포함시키고, 요청 시 토큰을 함께 전송하도록 함
      • 서버는 요청이 유효한지를 토큰으로 검증함
    • SameSite 쿠키 속성 설정
      • SameSite=Lax 또는 SameSite=Strict 설정 시, 외부 사이트에서 쿠키가 자동 전송되지 않음
    • Referer / Origin 검증
      • 요청의 Referer 또는 Origin 헤더를 검사하여 유효한 도메인에서 왔는지 확인
    • CORS 정책 강화
      • 허용된 도메인에서만 요청할 수 있도록 설정

CSRF vs XSS 비교

구분 CSRF XSS
목적 사용자의 권한을 이용해 요청 악성 스크립트를 실행
방식 사용자가 모르게 요청 전송 사용자 브라우저에서 스크립트 실행
방어 CSRF Token, SameSite 등 입력값 필터링, CSP 등

참고

  • ChatGPT-4.0

보완/복습

  • 2025.06.24 생성

태그:

카테고리:

업데이트: