문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
기술문서:레퍼런스:보안:xss [2026/02/20 18:50] carlito76 |
기술문서:레퍼런스:보안:xss [2026/03/23 13:59] (현재) carlito76 ↷ 문서가 etc:임시문서:기술문서:레퍼런스:보안:xss에서 기술문서:레퍼런스:보안:xss(으)로 이동되었습니다 |
||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| + | {{htmlmetatags> | ||
| + | metatag-description=(XSS, | ||
| + | metatag-og: | ||
| + | }} | ||
| + | |||
| ====== XSS ====== | ====== XSS ====== | ||
| 줄 9: | 줄 14: | ||
| ^ 속성 | ^ 속성 | ||
| | onabort | <color gray> | | onabort | <color gray> | ||
| - | | onactivate ((포커스)) | <color gray> | + | | onactivate |
| | onafterprint ((< | | onafterprint ((< | ||
| | onafterscriptexecute ((Gecko 엔진)) ((< | | onafterscriptexecute ((Gecko 엔진)) ((< | ||
| | onafterupdate ((Internet Explorer)) | <color gray> | | onafterupdate ((Internet Explorer)) | <color gray> | ||
| | onanimationcancel ((CSS 애니메이션)) | <color gray> | | onanimationcancel ((CSS 애니메이션)) | <color gray> | ||
| - | | onanimationend ((CSS 애니메이션)) | <span\\ onanimationend=" | + | | onanimationend ((CSS 애니메이션)) | <span\\ onanimationend=" |
| - | | onanimationiteration ((CSS 애니메이션)) | <span\\ onanimationiteration=" | + | | onanimationiteration ((CSS 애니메이션)) | <span\\ onanimationiteration=" |
| - | | onanimationstart ((CSS 애니메이션)) | <span\\ onanimationstart=" | + | | onanimationstart ((CSS 애니메이션)) | <span\\ onanimationstart=" |
| | onappinstalled ((Progressive Web App)) ((< | | onappinstalled ((Progressive Web App)) ((< | ||
| - | | onauxclick ((마우스)) | <img\\ src="< | + | | onauxclick ((포인터)) | <img\\ src="< |
| - | | onbeforeactivate ((Internet Explorer)) ((포커스)) | <color gray> | + | | onbeforeactivate ((Internet Explorer |
| | onbeforecopy ((클립보드)) | <span\\ onbeforecopy=" | | onbeforecopy ((클립보드)) | <span\\ onbeforecopy=" | ||
| | onbeforecut ((클립보드)) | <span\\ onbeforecut=" | | onbeforecut ((클립보드)) | <span\\ onbeforecut=" | ||
| - | | onbeforedeactivate ((Internet Explorer)) ((포커스)) | <color gray> | + | | onbeforedeactivate ((Internet Explorer |
| | onbeforeeditfocus ((Internet Explorer)) ((포커스)) | <color gray> | | onbeforeeditfocus ((Internet Explorer)) ((포커스)) | <color gray> | ||
| | onbeforeinput | <input\\ onbeforeinput=" | | onbeforeinput | <input\\ onbeforeinput=" | ||
| 줄 30: | 줄 35: | ||
| | onbeforeprint ((< | | onbeforeprint ((< | ||
| | onbeforescriptexecute ((Gecko 엔진)) ((< | | onbeforescriptexecute ((Gecko 엔진)) ((< | ||
| - | | onbeforetoggle | FIXME | FIXME | | + | | onbeforetoggle |
| - | | onbeforeunload ((< | + | | onbeforeunload ((< |
| | onbeforeupdate ((Internet Explorer)) | <color gray> | | onbeforeupdate ((Internet Explorer)) | <color gray> | ||
| - | | onbegin ((SVG 애니메이션)) | <svg width=" | + | | onbegin ((SVG 애니메이션)) | <svg width=" |
| | onblur ((포커스)) | <input\\ onblur=" | | onblur ((포커스)) | <input\\ onblur=" | ||
| - | | onbounce ((< | + | | onbounce |
| - | | oncancel | <color gray> | + | | oncancel |
| - | | oncanplay ((< | + | | oncanplay |
| - | | oncanplaythrough ((< | + | | oncanplaythrough |
| | oncellchange ((Internet Explorer)) | <color gray> | | oncellchange ((Internet Explorer)) | <color gray> | ||
| | onchange ((< | | onchange ((< | ||
| | onchargingchange ((하드웨어)) | <color gray> | | onchargingchange ((하드웨어)) | <color gray> | ||
| - | | onclick | FIXME | FIXME | | + | | onclick |
| - | | onclose | <color gray> | + | | onclose |
| - | | oncontentvisibilityautostatechange | <span\\ oncontentvisibilityautostatechange=" | + | | oncontentvisibilityautostatechange | <span\\ oncontentvisibilityautostatechange=" |
| | oncontextlost ((하드웨어)) | <color gray> | | oncontextlost ((하드웨어)) | <color gray> | ||
| - | | oncontextmenu | FIXME | FIXME | | + | | oncontextmenu |
| | oncontextrestored ((하드웨어)) | <color gray> | | oncontextrestored ((하드웨어)) | <color gray> | ||
| | oncontrolselect ((Internet Explorer)) | <color gray> | | oncontrolselect ((Internet Explorer)) | <color gray> | ||
| 줄 52: | 줄 57: | ||
| | oncuechange ((< | | oncuechange ((< | ||
| | oncut ((클립보드)) | <span\\ oncut=" | | oncut ((클립보드)) | <span\\ oncut=" | ||
| - | | ondeactivate ((Internet Explorer)) ((포커스)) | <color gray> | + | | ondblclick ((포인터)) | <img\\ src="< |
| - | | ondblclick | FIXME | FIXME | | + | | ondeactivate ((Internet Explorer |
| | ondevicechange ((하드웨어)) | <color gray> | | ondevicechange ((하드웨어)) | <color gray> | ||
| | ondevicemotion ((하드웨어)) | <color gray> | | ondevicemotion ((하드웨어)) | <color gray> | ||
| | ondeviceorientation ((하드웨어)) | <color gray> | | ondeviceorientation ((하드웨어)) | <color gray> | ||
| | ondeviceorientationabsolute ((하드웨어)) | <color gray> | | ondeviceorientationabsolute ((하드웨어)) | <color gray> | ||
| - | | ondrag | FIXME | FIXME | | + | | ondrag |
| - | | ondragend | FIXME | FIXME | | + | | ondragend |
| - | | ondragenter | FIXME | FIXME | | + | | ondragenter |
| - | | ondragleave | FIXME | FIXME | | + | | ondragleave |
| - | | ondragover | FIXME | FIXME | | + | | ondragover |
| - | | ondragstart | FIXME | FIXME | | + | | ondragstart |
| - | | ondrop | FIXME | FIXME | | + | | ondrop |
| - | | ondurationchange ((< | + | | ondurationchange |
| - | | onend ((SVG 애니메이션)) | <svg width=" | + | | onemptied ((미디어)) ((< |
| - | | onended ((< | + | | onend ((SVG 애니메이션)) | <svg width=" |
| - | | onerror | <img\\ src="" | + | | onended |
| + | | onerror | <img\\ src="" | ||
| | onerrorupdate ((Internet Explorer)) | <color gray> | | onerrorupdate ((Internet Explorer)) | <color gray> | ||
| | onfilterchange ((Internet Explorer)) | <color gray> | | onfilterchange ((Internet Explorer)) | <color gray> | ||
| - | | onfinish ((< | + | | onfinish |
| | onfocus ((포커스)) | <input\\ onfocus=" | | onfocus ((포커스)) | <input\\ onfocus=" | ||
| | onfocusin ((포커스)) | <input\\ onfocusin=" | | onfocusin ((포커스)) | <input\\ onfocusin=" | ||
| 줄 85: | 줄 91: | ||
| | ongamepaddisconnected ((하드웨어)) | <color gray> | | ongamepaddisconnected ((하드웨어)) | <color gray> | ||
| | ongotpointercapture ((포인터)) | <color gray> | | ongotpointercapture ((포인터)) | <color gray> | ||
| - | | onhashchange | <color gray> | + | | onhashchange | <color gray> |
| | onhelp ((Internet Explorer)) | <color gray> | | onhelp ((Internet Explorer)) | <color gray> | ||
| | oninput | <input\\ oninput=" | | oninput | <input\\ oninput=" | ||
| - | | oninvalid | FIXME | FIXME | | + | | oninvalid |
| - | | onkeydown | FIXME | FIXME | | + | | onkeydown |
| - | | onkeypress | FIXME | FIXME | | + | | onkeypress |
| - | | onkeyup | FIXME | FIXME | | + | | onkeyup |
| | onlanguagechange ((시스템)) ((< | | onlanguagechange ((시스템)) ((< | ||
| | onlayoutcomplete ((Internet Explorer)) | <color gray> | | onlayoutcomplete ((Internet Explorer)) | <color gray> | ||
| | onlevelchange ((하드웨어)) | <color gray> | | onlevelchange ((하드웨어)) | <color gray> | ||
| - | | onload | <img\\ src="< | + | | onload | <img\\ src="< |
| - | | onloadeddata ((< | + | | onloadeddata |
| - | | onloadedmetadata ((<audio>, <video>)) | FIXME | FIXME | | + | | onloadedmetadata ((미디어)) |
| - | | onloadstart | + | | onloadstart ((미디어)) ((< |
| | onlostpointercapture ((포인터)) | <color gray> | | onlostpointercapture ((포인터)) | <color gray> | ||
| | onmessage ((네트워크)) | <color gray> | | onmessage ((네트워크)) | <color gray> | ||
| | onmessageerror ((네트워크)) | <color gray> | | onmessageerror ((네트워크)) | <color gray> | ||
| - | | onmousedown | FIXME | FIXME | | + | | onmousedown |
| - | | onmouseenter | FIXME | FIXME | | + | | onmouseenter |
| - | | onmouseleave | FIXME | FIXME | | + | | onmouseleave |
| - | | onmousemove | FIXME | FIXME | | + | | onmousemove |
| - | | onmouseout | FIXME | FIXME | | + | | onmouseout |
| - | | onmouseover | FIXME | FIXME | | + | | onmouseover |
| - | | onmouseup | FIXME | FIXME | | + | | onmouseup |
| - | | onmousewheel | FIXME | FIXME | | + | | onmousewheel |
| - | | onmove | <color gray> | + | | onmove |
| - | | onmoveend | <color gray> | + | | onmoveend |
| - | | onmovestart | <color gray> | + | | onmovestart |
| | onmozfullscreenchange ((Gecko 엔진)) | <color gray> | | onmozfullscreenchange ((Gecko 엔진)) | <color gray> | ||
| | onmozfullscreenerror ((Gecko 엔진)) | <color gray> | | onmozfullscreenerror ((Gecko 엔진)) | <color gray> | ||
| 줄 118: | 줄 124: | ||
| | ononline ((네트워크)) | <color gray> | | ononline ((네트워크)) | <color gray> | ||
| | onorientationchange ((< | | onorientationchange ((< | ||
| - | | onpagehide ((< | + | | onpagehide ((< |
| | onpageshow ((< | | onpageshow ((< | ||
| | onpaste ((클립보드)) | <span\\ onpaste=" | | onpaste ((클립보드)) | <span\\ onpaste=" | ||
| - | | onpause ((< | + | | onpause |
| - | | onplay ((< | + | | onplay |
| - | | onplaying ((< | + | | onplaying |
| | onpointercancel ((포인터)) | <color gray> | | onpointercancel ((포인터)) | <color gray> | ||
| - | | onpointerdown ((포인터)) | <img\\ src="< | + | | onpointerdown ((포인터)) | <img\\ src="< |
| - | | onpointerenter ((포인터)) | <img\\ src="< | + | | onpointerenter ((포인터)) | <img\\ src="< |
| - | | onpointerleave ((포인터)) | <img\\ src="< | + | | onpointerleave ((포인터)) | <img\\ src="< |
| - | | onpointermove ((포인터)) | <img\\ src="< | + | | onpointermove ((포인터)) | <img\\ src="< |
| - | | onpointerout ((포인터)) | <img\\ src="< | + | | onpointerout ((포인터)) | <img\\ src="< |
| - | | onpointerover ((포인터)) | <img\\ src="< | + | | onpointerover ((포인터)) | <img\\ src="< |
| - | | onpointerrawupdate ((포인터)) | <img\\ src="< | + | | onpointerrawupdate ((포인터)) | <img\\ src="< |
| - | | onpointerup ((포인터)) | <img\\ src="< | + | | onpointerup ((포인터)) | <img\\ src="< |
| | onpopstate | <color gray> | | onpopstate | <color gray> | ||
| | onpresentationconnectionavailable ((하드웨어)) | <color gray> | | onpresentationconnectionavailable ((하드웨어)) | <color gray> | ||
| - | | onprogress ((< | + | | onprogress |
| | onpropertychange ((Internet Explorer / Edge Legacy)) | <color gray> | | onpropertychange ((Internet Explorer / Edge Legacy)) | <color gray> | ||
| - | | onratechange ((< | + | | onratechange |
| | onreadystatechange ((비동기)) | <color gray> | | onreadystatechange ((비동기)) | <color gray> | ||
| | onrejectionhandled ((비동기)) | <color gray> | | onrejectionhandled ((비동기)) | <color gray> | ||
| - | | onrepeat ((SVG 애니메이션)) | <svg width=" | + | | onrepeat ((SVG 애니메이션)) | <svg width=" |
| | onreset ((< | | onreset ((< | ||
| | onresize ((< | | onresize ((< | ||
| 줄 148: | 줄 154: | ||
| | onrowsdelete ((Internet Explorer)) | <color gray> | | onrowsdelete ((Internet Explorer)) | <color gray> | ||
| | onrowsinserted ((Internet Explorer)) | <color gray> | | onrowsinserted ((Internet Explorer)) | <color gray> | ||
| - | | onscroll | FIXME | FIXME | | + | | onscroll | < |
| - | | onscrollend | FIXME | FIXME | | + | | onscrollend | < |
| - | | onscrollsnapchange | FIXME | FIXME | | + | | onscrollsnapchange | <div\\ style=" |
| - | | onscrollsnapchanging | FIXME | FIXME | | + | | onscrollsnapchanging | < |
| - | | onsearch ((< | + | | onsearch ((< |
| - | | onsecuritypolicyviolation | FIXME | FIXME | | + | | onsecuritypolicyviolation | < |
| - | | onseeked ((< | + | | onseeked |
| - | | onseeking ((< | + | | onseeking |
| - | | onselect ((< | + | | onselect ((< |
| - | | onselectionchange | FIXME | FIXME | | + | | onselectionchange | |
| - | | onselectstart | FIXME | FIXME | | + | | onselectstart | <span\\ onselectstart |
| - | | onshow | FIXME | FIXME | | + | | onshow |
| - | | onslotchange | FIXME | FIXME | | + | | onslotchange | < |
| - | | onstalled ((< | + | | onstalled |
| - | | onstart ((< | + | | onstart |
| - | | onstop | FIXME | FIXME | | + | | onstop |
| | onstorage ((< | | onstorage ((< | ||
| | onsubmit ((< | | onsubmit ((< | ||
| - | | onsuspend ((< | + | | onsuspend |
| - | | ontimeupdate ((< | + | | ontimeupdate |
| - | | ontoggle | FIXME | FIXME | | + | | ontoggle |
| | ontouchcancel ((터치)) | <color gray> | | ontouchcancel ((터치)) | <color gray> | ||
| - | | ontouchend ((터치)) | <img\\ src="< | + | | ontouchend ((터치)) | <img\\ src="< |
| - | | ontouchmove ((터치)) | <img\\ src="< | + | | ontouchmove ((터치)) | <img\\ src="< |
| - | | ontouchstart ((터치)) | <img\\ src="< | + | | ontouchstart ((터치)) | <img\\ src="< |
| | ontransitioncancel ((CSS 트랜지션)) | <color gray> | | ontransitioncancel ((CSS 트랜지션)) | <color gray> | ||
| | ontransitionend ((CSS 트랜지션)) | <color gray> | | ontransitionend ((CSS 트랜지션)) | <color gray> | ||
| 줄 178: | 줄 184: | ||
| | ontransitionstart ((CSS 트랜지션)) | <color gray> | | ontransitionstart ((CSS 트랜지션)) | <color gray> | ||
| | onunhandledrejection ((비동기)) | <color gray> | | onunhandledrejection ((비동기)) | <color gray> | ||
| - | | onunload ((< | + | | onunload ((< |
| | onvisibilitychange | <color gray> | | onvisibilitychange | <color gray> | ||
| - | | onvolumechange ((< | + | | onvolumechange |
| | onvrdisplayactivate ((하드웨어)) | <color gray> | | onvrdisplayactivate ((하드웨어)) | <color gray> | ||
| | onvrdisplaydeactivate ((하드웨어)) | <color gray> | | onvrdisplaydeactivate ((하드웨어)) | <color gray> | ||
| - | | onwaiting ((< | + | | onwaiting |
| | onwebkitanimationcancel ((WebKit 엔진)) | <color gray> | | onwebkitanimationcancel ((WebKit 엔진)) | <color gray> | ||
| | onwebkitanimationend ((WebKit 엔진)) | <color gray> | | onwebkitanimationend ((WebKit 엔진)) | <color gray> | ||
| 줄 200: | 줄 206: | ||
| | onwebkittransitionstart ((WebKit 엔진)) | <color gray> | | onwebkittransitionstart ((WebKit 엔진)) | <color gray> | ||
| | onwebkitwillrevealbottom ((WebKit 엔진)) | <color gray> | | onwebkitwillrevealbottom ((WebKit 엔진)) | <color gray> | ||
| - | | onwheel | FIXME | FIXME | | + | | onwheel |
| - | | onzoom | FIXME | FIXME | | + | | onzoom |
| ((https:// | ((https:// | ||
| - | |||
| - | FIXME | ||
| - | * ReDoS | ||
| ===== 방어 ===== | ===== 방어 ===== | ||
| - | FIXME | + | * HTML 태그 무력화 |
| + | * & → & | ||
| + | * < → < | ||
| + | * > → > | ||
| + | * " → & | ||
| + | * ' → & | ||
| + | * DOMPurify ((https:// | ||
| + | * CSP 설정 | ||
| * HttpOnly 설정 | * HttpOnly 설정 | ||