XSS란?
•
위부 사용자가 HTML 태그를 사용할 수 있을 때 발생하는 취약점
•
외부의 공격자가 클라이언트 스크립트를 악용하여 웹사이트에 접속하려는일반 사용자로 하여금 공격자가 의도한 명령이나 작업을 수행하도록 하는 공격
•
악성 서버 유도, 사용자 쿠키 정보 추출 (세션 가로채기) 공격등을 수행
•
자주 사용하는 HTML 태그 : <script>
⇒ 1회성, 한 번 쓰면 끝
⇒ 보통 다른 웹사이트로 리다이렉션(이동) 시킬 때 자주 사용
⇒ 다회성, 저장된 HTML 코드가 삭제되기 전까지는 계속해서 동작
XSS의 대응방안
•
입력 값 검증
◦
사용자가 입력한 값에 위험성 존재 여부검증
▪
데이터의 길이
▪
제한된 문자만 입력
▪
특정한 규칙 표현과 일치여부확인
◦
애플리케이션의 각 필드에 입력 예상 값의 특성에 따라 금증 규칙이 가능한 한 엄격하게 적용
•
출력 값 검증
◦
스크립트 실행을 막는 출력 값 조치
▪
입력 데이터를 HTML 인코딩
▪
인코딩 된 악의적 문자 → 문서내용의 한 부분으로 인식 → 안전하게 제어
•
위험성 있는 삽입 지점 제거
◦
공격자의 응답 인코딩 유형 조작 → 출력 값 검증 우회 위험
◦
응답 헤더의 모든 곳에서 공격자가 수정할 수 있는 모든 여지 차단