5월 7일 -XSS

Yullgiii·2024년 5월 7일
0
post-thumbnail

XSS (Cross-Site Scripting)에 대한 설명

정의

XSS는 악의적인 스크립트가 웹 페이지에 삽입되어 사용자의 브라우저에서 실행되는 보안 취약점을 말한다. 이 공격은 사용자의 세션 쿠키, 세션 토큰 또는 기타 중요 정보를 탈취하거나, 사용자를 대신하여 원하지 않는 행동을 수행할 수 있다.

유형

  • Stored XSS: 서버의 데이터베이스에 악의적인 스크립트가 저장되어 다른 사용자의 요청에 의해 실행되는 경우다.
  • Reflected XSS: 사용자로부터 입력 받은 데이터를 서버가 처리한 후 즉시 사용자에게 다시 출력할 때 발생한다.
  • DOM-based XSS: 클라이언트 사이드에서 발생하는 XSS로, 원래의 서버 응답은 변경되지 않지만, 클라이언트 측 코드의 취약점을 통해 DOM이 수정되어 실행된다.

CSRF (Cross-Site Request Forgery)

정의

CSRF는 사용자가 이미 인증된 웹사이트에서 사용자의 의도와는 무관하게 공격자가 준비한 악의적인 요청을 전송하게 만드는 공격이다.

작동 방식

공격자는 사용자가 자신의 인증을 사용하여 요청을 보낼 수 있는 웹사이트에 대해 알고 있으며, 이를 이용하여 사용자가 의도하지 않은 요청을 전송하게 한다.

XSS와 CSRF의 차이

  • 공격 목표: XSS는 사용자의 브라우저를 대상으로 하며, CSRF는 웹 애플리케이션을 대상으로 한다.
  • 사용자의 상호작용: XSS는 사용자의 상호작용 없이 자동으로 스크립트가 실행될 수 있으며, CSRF는 사용자가 악의적인 내용에 상호작용해야 한다.

XSS 방어

  • 입력 검증 및 새니타이징: 서버측과 클라이언트 측 모두에서 사용자 입력을 검증하고, 위험한 문자를 안전하게 만들어야 한다.
  • 콘텐츠 보안 정책 (CSP): 웹 애플리케이션에서 특정 소스에서만 스크립트를 로드하도록 제한하여 XSS 공격을 방지할 수 있다.
  • HTTPOnly와 Secure 플래그를 사용한 쿠키: 이 플래그를 사용하면 JavaScript를 통한 쿠키 접근을 차단하여 XSS 공격으로부터 쿠키를 보호할 수 있다.

XSS는 프론트엔드와 백엔드 모두에서 적절한 조치를 통해 방어할 수 있으며, 전체적인 보안 전략의 일환으로 다루어져야 한다.

profile
개발이란 무엇인가..를 공부하는 거북이의 성장일기 🐢

0개의 댓글