Web Basic · Security

HTTPS·XSS·CSRF를 다른 방어선에 배치하기

웹 보안 기초는 공격 이름을 외우는 것이 아니라, 전송·출력·요청 의도라는 서로 다른 신뢰 경계에 방어선을 배치하는 일이다.

01

전송 보호

로그인과 API 요청은 HTTPS와 secure cookie를 기본으로 둔다.

02

출력 보호

사용자 입력은 표시 맥락에 맞게 escape하고 innerHTML 사용을 제한한다.

03

요청 의도

상태 변경 요청에는 CSRF token, SameSite, Origin 검증을 조합한다.

04

피해 축소

CSP와 HttpOnly cookie로 뚫렸을 때의 실행·탈취 범위를 줄인다.

HTTPS
채널 보호 TLS로 중간자 공격과 평문 노출을 줄임
혼합 콘텐츠 차단
XSS
출력 맥락 HTML, attribute, URL, script context별 인코딩
innerHTML 한계
CSRF
요청 의도 쿠키 자동 전송을 악용한 상태 변경 요청
SameSite와 token
CSP
실행 출처 제한 허용된 script와 connect 출처를 제한
report-only로 점검

쿠키 · 출력 · 상태 변경 점검

쿠키 HttpOnly, Secure, SameSite가 목적에 맞다.
출력 사용자 입력이 HTML로 실행되지 않는다.
상태 변경 POST/PATCH/DELETE에는 의도 확인 장치가 있다.
헤더 CSP와 HSTS 등 보안 헤더를 검토했다.