{{htmlmetatags> metatag-description=(XSS, Cross Site Scripting, 크로스 사이트 스크립팅, 공격과 방어, 예시) metatag-og:description=(XSS, Cross Site Scripting, 크로스 사이트 스크립팅, 공격과 방어, 예시) }} ====== XSS ====== XSS (Cross Site Scripting) 공격과 방어\\ \\ **"본 문서의 예시는 학습용입니다. 반드시 테스트 환경에서만 사용하세요."** ===== 공격 ===== ==== HTML Event Attributes ==== ^ 속성 ^ 예시 ^ 비고 ^ | onabort | - | 강제 중단/취소 | | onactivate ((Internet Explorer / Edge Legacy)) ((포커스)) | - | | | onafterprint ((, )) | \\ \\ \\ \\ | 인쇄 후\\ - 인쇄\\ - 취소 | | onafterscriptexecute ((Gecko 엔진)) (( | | object | FIXME | | embed | FIXME | | applet | FIXME | | svg | FIXME | | iframe | FIXME | | frame | FIXME | ==== 페이징 이동 ==== location.href='https://example.com' location.replace('https://example.com') location.assign('https://example.com') window.location='https://example.com' document.location='https://example.com' top.location= 'https://example.com' parent.location='https://example.com' self.location='https://example.com' location['href']='https://example.com' location['replace']('https://example.com') location['assign']('https://example.com') window['location']='https://example.com' document['location']='https://example.com' top['location']='https://example.com' parent['location']='https://example.com' self['location']='https://example.com' location='https://example.com' window.open('https://example.com', '_self') ===== 방어 ===== * HTML 태그 무력화 * & → & * < → < * > → > * " → " * ' → ' * DOMPurify ((https://github.com/cure53/DOMPurify)) 사용 * CSP (Content-Security Policy) 설정 * HttpOnly 설정