CSS / style 컨텍스트 삽입
사용자 입력이 style 태그, style 속성, CSS URL 토큰으로 들어갈 때 parser 탈출이나 위험 URL 이 남는지 확인한다.
HTML payload 테스트
이 시나리오는 iframe sandbox 가 아니라 사용자 입력이 HTML/DOM 으로 렌더링되는 지점을 검증합니다.
- 사용자 입력을 style 태그 내부에 직접 삽입하지 않는지 확인
- style 속성을 허용한다면 CSS 프로퍼티와 url() 스킴을 allowlist 로 제한하는지 확인
- HTML sanitizer 가 CSS parser 경계까지 안전하게 처리하는지 확인
페이로드
복사할 payload
사용자 값이 style 태그 내부에 들어가는 경우 태그 탈출 여부를 확인한다.
붙여넣을 곳
본인이 권한을 가진 dev/staging의 에디터, 댓글, 프로필 또는 HTML 렌더링 입력란
판정 기준
실행되면 위험 신호입니다. 코드가 텍스트로 표시되거나 위험 요소가 제거되어야 기대한 방어 결과입니다.
미리보기
미리보기는 학습용으로 의도적으로 unsafe 렌더링을 수행합니다. 실제 서비스에서는 이 payload 가 텍스트로 이스케이프되거나 제거되어야 합니다.
로그
// 로그 없음
해설
- CSS 자체가 곧바로 JavaScript 를 실행하지 않는 환경이 많아졌지만,
</style>탈출은 여전히 HTML parser 경계 문제입니다. - 스타일 속성을 허용하면 레이아웃 변조, clickjacking 보조, 원격 리소스 요청 같은 부작용도 함께 검토해야 합니다.
- 필요한 CSS 속성만 allowlist 로 허용하고,
url()은 별도 URL 정책으로 정규화한 뒤 검증하세요.