XSS CSRF 차이와 보안 비교

반응형

웹 보안 취약점 XSS와 CSRF를 각각 설명하고, 공격 방식·영향·장단점 관점에서 비교 표로 정리합니다

XSS CSRF 차이와 보안 비교

XSS와 CSRF 차이

XSS와 CSRF는 모두 웹 서비스에서 매우 흔하게 발견되는 보안 취약점이지만, 공격 방식과 방어 전략은 완전히 다릅니다.

1️⃣ XSS (Cross-Site Scripting)

XSS는 공격자가 악성 스크립트(JavaScript)를 웹 페이지에 삽입하여, 다른 사용자의 브라우저에서 실행되도록 만드는 공격입니다.

핵심 개념
- 서버가 사용자 입력을 제대로 검증/출력하지 않음
- 브라우저가 공격자 스크립트를 “정상 코드”로 실행
- 피해자는 공격 사실을 인지하지 못한 채 악성 코드 실행

XSS 주요 유형

  • Stored XSS: 게시글/댓글 등에 저장되어 다수 사용자에게 영향
  • Reflected XSS: URL/파라미터를 통해 즉시 반사 실행
  • DOM-based XSS: 클라이언트 JS 로직 취약점

XSS의 장단점 (공격자 관점)

  • 장점: 세션 탈취, 키로깅, 피싱 등 공격 확장성 큼
  • 단점: 입력/출력 필터링, CSP 적용 시 난이도 급상승

2️⃣ CSRF (Cross-Site Request Forgery)

CSRF는 사용자가 이미 로그인된 상태임을 악용하여, 사용자의 의도와 무관한 요청을 서버에 강제로 전송하게 만드는 공격입니다.

핵심 개념
- 공격자는 스크립트를 실행할 필요 없음
- 브라우저의 “자동 쿠키 전송” 특성을 악용
- 서버는 요청이 정상 사용자 요청인지 구분 못함

CSRF의 장단점 (공격자 관점)

  • 장점: 단순한 HTML 요청만으로 공격 가능
  • 단점: 읽기(Read)보다는 상태 변경(Create/Update/Delete)에 국한

3️⃣ XSS와 CSRF의 핵심 차이

구분 XSS CSRF
공격 위치 사용자 브라우저 내부 서버 요청 처리 단계
공격 핵심 악성 스크립트 실행 위조된 요청 전송
사용자 클릭 불필요 (자동 실행 가능) 필요한 경우 많음
주요 피해 세션 탈취, 정보 유출, 피싱 권한 오남용, 설정 변경
주요 방어 입력 검증, 출력 인코딩, CSP CSRF 토큰, SameSite 쿠키

4️⃣ 운영 관점에서의 중요 포인트

- XSS는 “사용자 브라우저 장악” 문제
- CSRF는 “정상 사용자 권한 악용” 문제
- XSS가 존재하면 CSRF 방어도 우회될 수 있음
- 따라서 XSS 방어가 CSRF 방어의 전제 조건

5️⃣ 정리

XSS와 CSRF는 자주 함께 언급되지만, 위협 모델 자체가 다릅니다.
안전한 웹 서비스 운영을 위해서는 두 취약점을 각각 독립적으로 이해하고, 동시에 방어 전략을 적용해야 합니다.

실무에서는 “CSRF 토큰만 있으면 안전하다”가 아니라,
“XSS가 없는 상태에서 CSRF 방어가 의미를 가진다”는 점을 반드시 기억해야 합니다.

반응형