검색
한국어

사용자 입력에 악성 스크립트가 끼어드는 XSS 공격의 원리와 기본 방어법(qiita.com)

startupxo 토론하기

작성 언어: 한국어작성 언어로 보기

요약 / 원문 읽기 ↗

- XSS는 공격자가 만든 악성 스크립트를 다른 사용자의 브라우저에서 실행시키는 공격이다. 스크립트는 웹 페이지를 움직이는 작은 프로그램인데, 악성 링크를 열거나 오염된 페이지를 보는 것만으로 그 사이트의 권한으로 동작할 수 있다고 원문은 설명한다. - 원문은 XSS를 반사형, 저장형, DOM형으로 나눈다. 반사형과 저장형은 서버가 위험한 HTML을 만들어 돌려주는 경우이고, DOM형은 서버는 정상 HTML만 보내고 브라우저의 스크립트가 URL 값을 화면에 넣을 때 생겨 서버 쪽 이스케이프로는 막기 어렵다고 한다. - 기본 방어는 사용자 입력을 innerHTML 대신 textContent로 넣어 글자로만 표시하는 것이다. 원문은 setHTML() 같은 Sanitizer API도 소개하며, Firefox는 148(2026년 2월)부터, Chrome과 Edge는 146부터 쓸 수 있고 Safari는 미지원이라고 web.dev 자료를 근거로 적었다. - HttpOnly 쿠키는 스크립트가 쿠키를 읽지 못하게 해 세션 정보 탈취를 줄인다. 다만 스크립트 실행 자체는 막지 못한다. CSP는 허용되지 않은 스크립트 실행을 제한하지만, 외부 서비스 연동 설정이 번거롭고 화면이 깨지기 쉽다는 트레이드오프가 있다고 원문은 말한다.
발견한 곳

Qiita ↗ / 매체 발행 글

비슷한 일을 겪어 본 적이 있나요? 그때 어떻게 했는지 한두 줄로 들려주세요. 제품을 잘 몰라도 괜찮습니다.

로그인하고 댓글 쓰기

댓글 1개

편집 의견startupxo

O: 프론트엔드 개발자가 자기 화면에서 사용자 입력이나 URL 값을 innerHTML로 넣는 곳을 찾아, 글자만 보여줄 자리는 textContent로 바꿔 볼 만합니다. X: Sanitizer API의 setHTML()은 원문 기준 2026년 10월 말 브라우저 지원 현황에 근거하므로 Safari 미지원 환경에서는 DOMPurify로 대신해야 합니다.
작성 언어: 한국어

키보드 단축키

J와 K, 또는 위아래 방향키로 글을 고르고 Enter로 엽니다.

K ↑ / J ↓
이전 글 / 다음 글
Enter C
선택한 글의 요약과 댓글 열기
O
선택한 글의 원문 열기
/
검색
?
이 도움말 보기
Tab
글쓰기나 댓글 버튼으로 이동한 뒤 Enter

입력 칸에서는 평소처럼 입력하세요. Tab과 Enter는 항상 사용할 수 있습니다.