GiYeong

XSS / CSRF 본문

CS/보안

XSS / CSRF

gy2710 2022. 8. 10. 02:03

XSS(CSS, Cross Site Scripting)

웹사이트의 관리자가 아닌 공격자가 웹 페이지에 악성 스크립트를 삽입할 수 있는 취약점으로 발생되는 공격이다.

공격자가 상대방의 브라우저에 스크립트가 실행되도록 하여 사용자의 세션을 가로채거나, 웹사이트를 변조, 악의적 컨텐츠 삽입, 피싱 공격을 진행하는 것이다.

웹 어플리케이션이 사용자로부터 입력 받은 값을 제대로 검사하지 않고 사용할 경우 발생한다. (게시판에 악성 스크립트가 담긴 글을 올리는 등)

 

대응방안

  • 모든 입력값에 대한 필터링을 수행(필터 제작)
  • BBCode 사용
  • 쿠키의 보안 옵션 사용
  • 콘텐츠 보안 정책(CSP) 사용 : 스크립트 실행에 대한 정책을 설정하여 출처가 가지 서버인 스크립트만 실행되도록 허용

CSRF(Cross Site Request Forgery)

사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격이다.

사용자가 웹사이트에서 CSRF 스크립트가 포함된 페이지를 열면, 공격 대상이 되는 웹사이트는 위조된 공격 명령이 믿을 수 있는 사용자로부터 발송된 것으로 판단하여 공격에 노출된다.

 

대응방안

  • CSRF 토큰 사용
  • 재인증 요구

XSS와 CSRF의 차이점

  • XSS는 공격대상이 Client이고, CSRF는 Server이다.
  • XSS는 사용자가 특정 웹사이트를 신용하는 점을 노리고, CSRF은 특정 웹사이트가 사용자의 웹 브라우저를 신용하는 상태를 노린다.
  • XSS는 사이트변조나 백도어를 통해 Client에 대한 공격을 하며, CSRF는 요청을 위조하여 사용자 권한을 이용해 Server에 대한 공격을 한다.

'CS > 보안' 카테고리의 다른 글

SQL Injection(SQL 삽입 공격)  (0) 2022.08.10
JWT, OAuth 차이점  (0) 2022.08.10
JWT(JSON Web Token)  (0) 2022.08.07
단방향 암호화  (0) 2022.08.07
비대칭키(공개키) / 대칭키 암호화 (양방향 암호화)  (0) 2022.08.07
Comments