javascript: URL 프로토콜
a href, form action 같은 URL 속성에 javascript: 프로토콜이 남아 클릭 또는 submit 시 실행되는지 확인한다.
HTML payload 테스트
이 시나리오는 iframe sandbox 가 아니라 사용자 입력이 HTML/DOM 으로 렌더링되는 지점을 검증합니다.
- href/action/src 같은 URL 속성에서 javascript: 가 제거되는지 확인
- 대소문자, 공백, entity encoding 을 정규화한 뒤 검증하는지 확인
- 사용자 클릭이 필요한 지연 실행 payload 도 차단되는지 확인
페이로드
복사할 payload
사용자 클릭 후 실행되는 URL 프로토콜 기반 XSS.
붙여넣을 곳
본인이 권한을 가진 dev/staging의 에디터, 댓글, 프로필 또는 HTML 렌더링 입력란
판정 기준
실행되면 위험 신호입니다. 코드가 텍스트로 표시되거나 위험 요소가 제거되어야 기대한 방어 결과입니다.
미리보기
미리보기는 학습용으로 의도적으로 unsafe 렌더링을 수행합니다. 실제 서비스에서는 이 payload 가 텍스트로 이스케이프되거나 제거되어야 합니다.
로그
// 로그 없음
해설
javascript:URL 은 클릭이나 submit 같은 사용자 액션 뒤에 실행되므로 단순 렌더링 확인만으로 놓치기 쉽습니다.href,src,action,formaction등 URL 을 받는 모든 속성에서 프로토콜 검증이 필요합니다.- 검증 전에는 entity decoding, trim, 대소문자 정규화를 먼저 적용하세요.