프로필 닉네임 / 아이콘 렌더링 XSS
닉네임, 상태 메시지, 아이콘 URL 처럼 사소해 보이는 프로필 필드가 속성/HTML 컨텍스트에서 실행 가능한 코드가 되는지 확인한다.
HTML payload 테스트
이 시나리오는 iframe sandbox 가 아니라 사용자 입력이 HTML/DOM 으로 렌더링되는 지점을 검증합니다.
- 닉네임은 textContent 로만 렌더링되는지 확인
- 속성에 넣는 값은 attribute context 에 맞게 인코딩되는지 확인
- 아이콘 URL 은 URL 객체와 host/protocol allowlist 로 검증하는지 확인
페이로드
복사할 payload
닉네임이 title, aria-label, value 같은 속성에 들어갈 때 따옴표 탈출을 확인한다.
미리보기
미리보기는 학습용으로 의도적으로 unsafe 렌더링을 수행합니다. 실제 서비스에서는 이 payload 가 텍스트로 이스케이프되거나 제거되어야 합니다.
로그
// 로그 없음
해설
- 프로필 필드는 화면 곳곳에서 재사용됩니다. 댓글, 알림, 관리자 목록, 공유 카드처럼 렌더링 위치가 많아져서 하나의 누락이 저장형 XSS 로 이어질 수 있습니다.
- 닉네임은 HTML 이 아니라 텍스트입니다. React/DOM 의 기본 텍스트 렌더링을 유지하고, 별도 formatter 가
dangerouslySetInnerHTML을 쓰지 않는지 확인하세요. - 아이콘은 URL 검증이 핵심입니다. 사용자가 입력한 아이콘 URL 을 그대로
src, CSS URL, innerHTML 로 넘기지 말고, 프로토콜/호스트/콘텐츠 타입을 검증하세요.