← Notes

XSS와 CSRF

security
2분 읽기

XSS와 CSRF

XSS (Cross-Site Scripting)

악성 스크립트를 웹사이트에 심어서 쿠키/토큰을 읽는 공격

해결

  • httpOnly 쿠키 → JS로 읽기 불가 → XSS 막힘

CSRF (Cross-Site Request Forgery)

사용자 모르게 요청을 위조하는 공격. 쿠키를 사용하는 공격

  • 로그인된 상태에서 해커 링크 클릭
  • 해커가 만든 페이지가 몰래 요청 보냄
  • 브라우저가 쿠키 자동으로 붙여주니까 서버 입장에선 정상 요청처럼 보임
  • httpOnly로는 못 막음 (JS로 읽는 게 아니라 브라우저가 자동으로 붙이는 거라)
  • GET보다 POST/PUT/DELETE에서 위험 (데이터 변경이 일어나니까)

해결 방법 1 - CSRF 토큰

서버가 랜덤 토큰 발급 → 요청할 때 헤더에 담아서 전송 → 서버가 검증 해커는 토큰을 모르니까 위조 요청 못 만듦

해결 방법 2 - SameSite 쿠키

  • SameSite=Strict - 다른 사이트에서 쿠키 완전 차단
  • SameSite=Lax - GET은 허용, POST/PUT/DELETE는 다른 사이트에서 차단 → 실무에서 충분한 수준
  • SameSite=None - 모두 허용 → CSRF 취약

XSS vs CSRF

XSS CSRF
공격 방식 쿠키를 읽음 쿠키를 사용함
해결 httpOnly 쿠키 CSRF 토큰 or SameSite=Lax

Related Notes

3개

sunshinemoon · 2026