본문 바로가기
정보보안

크로스 사이트 스크립팅(XSS) 이해하기

by Toddler_AD 2025. 9. 29.

XSS란 무엇인가요?

  • 크로스 사이트 스크립팅(XSS)은 나쁜 사람들이 웹사이트에 악성 코드를 넣어서 다른 사용자들을 공격하는 방법입니다[1][2]. 마치 누군가가 여러분이 자주 가는 웹사이트에 숨겨진 함정을 설치하는 것과 같아요[3].

XSS는 어떻게 작동하나요?

  • XSS 공격은 웹사이트가 사용자가 입력한 정보를 제대로 확인하지 않을 때 발생합니다[1][2]. 공격자는 JavaScript라는 컴퓨터 언어로 작성된 악성 코드를 웹사이트에 삽입합니다[4][5]. 다른 사용자가 그 웹사이트를 방문하면, 이 악성 코드가 자동으로 실행되어 개인정보를 훔치거나 웹사이트를 조작할 수 있습니다[1][2].

브라우저 보안 기능

  • 현대의 웹 브라우저들은 XSS 공격을 막기 위한 여러 보안 기능을 가지고 있습니다[4]:
    • CORS (Cross-Origin Resource Sharing): 다른 웹사이트 간의 자원 공유를 제어합니다
    • 쿠키 보호: HttpOnly와 SameSite 같은 기능으로 쿠키를 더 안전하게 보호합니다[4]

XSS 예방 방법

  • 웹 개발자들이 XSS 공격을 막기 위해 할 수 있는 일들은 다음과 같습니다[1][4][5]:

1. 입력 검증과 정리

  • 사용자가 입력한 모든 정보를 꼼꼼히 확인하고 위험한 부분을 제거합니다.

2. 출력 인코딩

  • 사용자 데이터를 웹페이지에 표시하기 전에 안전한 형태로 변환합니다.

3. 콘텐츠 보안 정책(CSP)

  • 실행할 수 있는 스크립트의 출처를 제한하는 규칙을 설정합니다.

4. 안전한 프레임워크 사용

  • 자동으로 보안 처리를 해주는 안전한 개발 도구를 사용합니다[1][4][5].

왜 XSS 예방이 중요한가요?

XSS 예방은 다음과 같은 위험으로부터 우리를 보호합니다[1][3][5]:

- 개인정보 도난

- 웹사이트 변조

- 악성 프로그램 배포

 

웹사이트와 사용자 모두를 안전하게 지키기 위해서는 XSS 공격을 막는 것이 매우 중요합니다.

 

---

Sources

[1] https://www.acunetix.com/websitesecurity/cross-site-scripting/

[2] https://www.blackduck.com/glossary/what-is-cross-site-scripting.html

[3] https://usa.kaspersky.com/resource-center/definitions/what-is-a-cross-site-scripting-attack

[4] https://portswigger.net/web-security/cross-site-scripting

[5] https://www.cloudflare.com/learning/security/threats/cross-site-scripting/