문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
기술문서:레퍼런스:보안:xss [2026/02/24 19:06] carlito76 |
기술문서:레퍼런스:보안:xss [2026/03/23 13:59] (현재) carlito76 ↷ 문서가 etc:임시문서:기술문서:레퍼런스:보안:xss에서 기술문서:레퍼런스:보안:xss(으)로 이동되었습니다 |
||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| + | {{htmlmetatags> | ||
| + | metatag-description=(XSS, | ||
| + | metatag-og: | ||
| + | }} | ||
| + | |||
| ====== XSS ====== | ====== XSS ====== | ||
| 줄 14: | 줄 19: | ||
| | 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 / Edge Legacy)) ((포커스)) | <color gray> | | onbeforeactivate ((Internet Explorer / Edge Legacy)) ((포커스)) | <color gray> | ||
| | onbeforecopy ((클립보드)) | <span\\ onbeforecopy=" | | onbeforecopy ((클립보드)) | <span\\ onbeforecopy=" | ||
| 줄 31: | 줄 36: | ||
| | onbeforescriptexecute ((Gecko 엔진)) ((< | | onbeforescriptexecute ((Gecko 엔진)) ((< | ||
| | onbeforetoggle ((< | | 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 ((Internet Explorer / Edge Legacy)) ((< | | onbounce ((Internet Explorer / Edge Legacy)) ((< | ||
| - | | 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 ((마우스 | + | | onclick ((포인터 |
| - | | onclose | <color gray> | + | | onclose |
| - | | oncontentvisibilityautostatechange | <span\\ oncontentvisibilityautostatechange=" | + | | oncontentvisibilityautostatechange | <span\\ oncontentvisibilityautostatechange=" |
| | oncontextlost ((하드웨어)) | <color gray> | | oncontextlost ((하드웨어)) | <color gray> | ||
| - | | oncontextmenu ((마우스 | + | | 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=" | ||
| + | | ondblclick ((포인터)) | <img\\ src="< | ||
| | ondeactivate ((Internet Explorer / Edge Legacy)) ((포커스)) | <color gray> | | ondeactivate ((Internet Explorer / Edge Legacy)) ((포커스)) | <color gray> | ||
| - | | ondblclick ((마우스)) | <img\\ src="< | ||
| | 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> | ||
| 줄 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 ((< | | 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 ((마우스)) | <img\\ src="< | + | | onmousewheel ((마우스)) | <img\\ src="< |
| | onmove ((Internet Explorer / Edge Legacy)) | <color gray> | | onmove ((Internet Explorer / Edge Legacy)) | <color gray> | ||
| | onmoveend ((Internet Explorer / Edge Legacy)) | <color gray> | | onmoveend ((Internet Explorer / Edge Legacy)) | <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 ((<input type=" | | onsearch ((<input type=" | ||
| | onsecuritypolicyviolation | <color gray> | | onsecuritypolicyviolation | <color gray> | ||
| - | | onseeked ((< | + | | onseeked |
| - | | onseeking ((< | + | | onseeking |
| | onselect ((< | | onselect ((< | ||
| | onselectionchange | <color gray> | | onselectionchange | <color gray> | ||
| 줄 161: | 줄 167: | ||
| | onshow ((Firefox)) | <color gray> | | onshow ((Firefox)) | <color gray> | ||
| | onslotchange | <color gray> | | onslotchange | <color gray> | ||
| - | | onstalled ((< | + | | onstalled |
| | onstart ((Internet Explorer / Edge Legacy)) ((< | | onstart ((Internet Explorer / Edge Legacy)) ((< | ||
| | onstop ((Internet Explorer / Edge Legacy)) | <color gray> | | onstop ((Internet Explorer / Edge Legacy)) | <color gray> | ||
| | onstorage ((< | | onstorage ((< | ||
| | onsubmit ((< | | onsubmit ((< | ||
| - | | onsuspend ((< | + | | onsuspend |
| - | | ontimeupdate ((< | + | | ontimeupdate |
| | ontoggle ((< | | 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 ((마우스)) | <img\\ src="< | + | | onwheel ((마우스)) | <img\\ src="< |
| | onzoom ((Internet Explorer)) | <color gray> | | onzoom ((Internet Explorer)) | <color gray> | ||
| ((https:// | ((https:// | ||
| ===== 방어 ===== | ===== 방어 ===== | ||
| - | * 태그 무력화 | + | * HTML 태그 무력화 |
| * & → & | * & → & | ||
| * < → < | * < → < | ||
| 줄 211: | 줄 217: | ||
| * " → " | * " → " | ||
| * ' → ' | * ' → ' | ||
| - | * DOMPurify 사용 | + | * DOMPurify |
| * CSP 설정 | * CSP 설정 | ||
| * HttpOnly 설정 | * HttpOnly 설정 | ||