XSS 크로스 사이트 스크립팅


개요

SQL injection과 함께 웹 상에서 가장 기초적인 취약점 공격 방법의 일종으로, 악의적인 사용자가 공격하려는 사이트에 스크립트를 넣는 기법을 말한다. 공격에 성공하면 사이트에 접속한 사용자는 삽입된 코드를 실행하게 되며,[2] 보통 의도치 않은 행동을 수행시키거나 쿠키나 세션 토큰 등의 민감한 정보를 탈취한다. (나무위키 인용)

보통 자바스크립트를 이용하여 공격하는 경우가 많음.




보안대책

사용자가 입력한 문자열에서 <,>,&,"," 등을 replace등의 문자 변환메소드를 사용하여 &lt,&amp, &quot로 치환

게시판 등에서 html태그 허용 시 html 태그의 리스트를 선정한 후, 해당 태그만 허용하는 방식 적용


코드예제 

파라미터(name)에 <script>alert(document.cookie);</script>와 같은 스크립트 코드가 입력되고, 이 값이 그대로 사용되면 사용자의 쿠키정보가 공격자에게 전송될 수 있는 코딩



외부 입력 문자열에서 replaceAll()메소드를 사용하여 <,>,&," " 같이 스크립트 생성에 사용되는 문자열을 &lt, &gt, &amp, &quot 등으로 변경하면, 파라미터 name에 악성코드가 포함되더라도 스크립트 실행 불가하도록 코딩




참고문헌 및 이미지 출처

행정안전부, 한국인터넷진흥원 - 홈페이지 SW(웹) 개발보안 가이드

행정자치부, 한국인터넷진흥원 - 전자정부SW개발운영자를 위한 JAVA 시큐어코딩 가이드

'보안, 시큐어코딩' 카테고리의 다른 글

랜섬웨어 예방  (0) 2018.12.17
CSRF 사이트 간 요청 위조  (0) 2018.12.17
SQL 인젝션  (0) 2018.12.17

+ Recent posts