← 질문 목록
#181깊이 0
CSRF와 XSS의 결정적인 차이는 무엇인가?
사용자 브라우저의 권한을 도용하는 방식의 차이다. XSS는 악성 스크립트를 웹 페이지에 삽입해 실행시키고, CSRF는 사용자의 인증된 세션을 이용해 원치 않는 요청을 보내는 것이다.
| 기준 | XSS | CSRF |
|---|---|---|
| 공격 대상 | 사용자 브라우저 | 서버의 상태 변경 |
| 실행 주체 | 삽입된 스크립트 | 위조된 요청 |
| 핵심 원인 | 검증되지 않은 입력값 | 자동 전송되는 쿠키 |
XSS는 그 출처의 권한으로 남의 스크립트를 돌린다. 쿠키를 훔쳐 세션을 가로챌 수도 있지만 HttpOnly가 붙은 쿠키는 스크립트가 못 읽는다. 그래도 그 자리에서 요청을 대신 보낼 수는 있다.
반면 CSRF는 세션 ID를 가로채지 않는다. 사용자가 이미 로그인해 있다는 점을 그대로 이용한다.
CSRF는 주로 데이터 변경, 비밀번호 변경과 같은 상태 변경 요청에 치명적이다. XSS는 데이터 탈취취 및 페이지 변조로 범위가 더 넓다.