본문 바로가기

Web/DB

[web security] XSS (Cross-Site Scripting)

728x90

 

 

 

 

널리 알려진 웹 보안 취약점 중 하나로 악의적인 사용자가 악성 스크립트를 삽입하여 공격하는 경우를 말한다.

이를 통해 C&C(좀비 PC 명령 또는 악성 코드 제어하는 서버)로 리다이렉트 하거나 사용자의 쿠키를 탈취하여 세션 하이재킹 공격을 할 수 있다.

 

대표적인 공격 방식

 

- Stored XSS : 공격자가 제공한 데이터가 서버에 저장되면서 지속적으로 다른 사용자에게 스크립트를 노출시킴

- Reflected XSS : 쿼리스트링을 URL에 담아 전송 시 서버가 필터링 없이 응답 페이지로 전송 시 발생

- DOM Based XSS :

 

 

 

 

 

 

 

방지방법

1. innerHTML 사용 자제, textContent, innerText를 사용한다

2. 받은 HTML 자체를 서버에서 치환처리

3. Vue.js 사용 시 v-html 디렉티브를 사용하면 보안 취약점이 발생할 수 있음

4. 쿠키에 Http Only 옵션을 활성화한다. LocalStorage 사용 시 SESSIONID와 같은 민감한 정보를 저장하지않는다.

5. XSS 특수문자를 치환한다

 

728x90

'Web > DB' 카테고리의 다른 글

[db] 기본 개념 정리  (0) 2023.10.17
[mysql] Recursive  (0) 2023.05.02
[mysql] 멀티게시판 구현 설계  (0) 2023.05.02
[mysql] with 절(가상테이블) 02  (0) 2023.05.01
[mysql] with 절(가상테이블) 01  (0) 2023.05.01