
해당 부분에 대한 기초가 계쏙 헷갈렸는데 강사님께 혼나면서 배워서 간단하게 정리
악성 스크립트 -> 웹 페이지 삽입 -> 다른 사용자가 페이지 열 때 -> 해당 스크립트 실행
대상 : 웹 애플리케이션 사용자 -> 쿠키, 세션 토큰, 민감 정보 탈취 등
: 악성 스크립트 서버 저장 -> 다른 사용자 그 스크립트 포함 페이지 볼 때마다 실행
포스트 전달?
: 악성 스크립트 -> URL or 입력 필드 -> 즉시 반사되어 실행
공격 데이터 -> 즉시 반사되어 실행 -> 일시적으로 처리(저장 없이)
GET 또는 POST 요청
웹 로그
겟 방식
클라이언트가 자바스크립트 돔 조작할 때
개요 : 사용자가 자신도 모르는 사이 -> 공격자 의도한 특정 요청 -> 웹 애플리케이션에 보내는 공격
대상 : 웹 애플리케이션 서버 -> 서버 인증된 사용자 권한 -> 악의적 요청 처리
방식 : 사용자 로그인 한 상태 -> 악성 링크 클릭 or 악성 코드 페이지 로드 유도 -> 사용자의 브라우저는 이 요청을 인증된 세션으로 보냄 -> 서버 요청 합리적 사용자 인식
피해 : 사용자 계정 설정 변경, 데이터 삭제, 트랜잭션 수행 등
| XSS | CSRF | |
|---|---|---|
| 목적 | 사용자 브라우저 -> 악성 스크립트 실행 -> 사용자 정보 탈취 | 사용자 인증된 세션 이용 -> 사용자 의도 관계없이 서버에 악의적 요청 |
| 공격 대상 | 웹 애플리케이션 사용자 | 웹 애플리케이션 서버 |
| 공격 방식 | 웹 페이지 -> 악성 스크립트 삽입 | 사용자 권한 이용 -> 서버 요청 전송 |
| 방어 방법 | 사용자 입력 적절히 필터링 & 인코딩 CSP(Content Security Policy) 설정 사용자 제공 콘텐츠 -> 서버 저장 전 검증 | CSRF 토큰 사용 SameSite 쿠키 속성 설정 중요한 요청 재인증 요구 |
XSS, CSRF