웹에서 가장 기초적인 취약점 공격 방법중 하나로
권한이 없는 사용자가 악의적으로 웹 사이트에 script 를 삽입하는 공격 기법
다른 웹 사이트와 정보를 교환하는?
다른 웹 사이트로 정보를 빼가는 것을 말하는 것 같다
자바스크립트를 사용하여 공격하는 경우가 가장 많고
사용자의 세션을 공격자의 서버로 전송하여 정보를 탈취하거나
악성코드가 있는 페이지로 리다이렉트 시키는 방법으로 주로 공격한다고 함
주로 XSS 공격 link 가 포함된 웹 페이지로 사용자를 접속하게 하여
사용자의 웹 브라우저 상에서 해커의 스크립트를 실행시킨다
XSS 는 크게 두 가지 중류가 있다
사용자 입력에 대해 항시 검증하는 작업을 거친다
script 등 해킹에 사용되는 입출력 값에 대해 유효성 검사를 진행한다
입력 값 제한
입력 값을 제한하여 script 를 삽입하지 못하도록 한다
입력 값 치환
xss 공격은 기본적으로 script 태그를 사용하기 때문에
태그 문자 등을 필터링하고
서버에서 브라우저로 데이터 전송 시에 태그를 문자 데이터로 인코딩 한다
문자열로 인식하게 되어 script 실행은 되지 않고 문자열이 출력되게 된다
스크립트 영역에 출력 자제
이벤트 핸들러 영역에 스크립트가 삽입되는 경우
보호 기법들을 우회할 수 있어 사용자의 입력을 출력하는 것은 제한한다
라이브러리 이용
XSS 전용 Anti XSS 라이브러리를 여러 회사에서 제공한다
XSS 라이브러리는 서버 단에서 추가하는 것이고
https://easymedia.net/Culture/EasyStory/?no=170&mode=view&IDX=1165&p=1