본문 바로가기
프로그래밍/기타

자바(java) 보안(SECURE) 코딩 2. 크로스 사이트 스크립트

by 사바라다 2019. 7. 1.

서론


크로스 사이트 스크립트 (Cross-site Scripting)는 script 코드를 내용 등에 추가하여 해당 웹페이지를 열었을 때 해당 코드가 실행되게 하여 공격하는 기법이다. 본문의 내용에 자바스크립트 코드 등을 넣어서 접속자의 정보를 유출하는 등의 방법으로  사용될 수 있다.

 

1. 공격자가 웹서버에 악성 스크립트가 포함된 내용을 저장함

2. 사용자가 트정 게시물을 여는 등의 웹서버에서 행위를 발생

3. 공격자가 해당 게시물에 심어놓은 코드가 실행되어 의도치 않은 작동를 하게 된다

 

 

안전한 코딩 기법


1. 사용자가 문자열에 스크립트를 삽입하여 실행하는 것을 막기 위해 <, >, & 등을 replace 문자 변환 함수나 메서드를 사용하여 &rlt, &rgt, &ramp, &quot;로 치환

2. HTML 태그를 허용하는 게시판에서는 지원하는 HTML 태그리스트를 정의하여 그 범위 안에서 사용하게 한다

3. 보안성이 검증되어있는 API를 통해 위험한 문자열을 제거

 

 

 

예제


참조 : 한국인터넷 진흥원 기술안내서 가이드

위 코드는 사용자가 입력한 이름을 받아서 그대로 출력하는 코드이다 . 이 코드는 만약 name에 스크립트 코드를 넣게 되면 개발자가 의도치 않은 방식으로 프로그램이 진행될 수 있다. 특히 script코드로 url = "http://~~~/a.jsp" 등  url을 입력하여 강제로 redirection 되도록 할 수 도 있다. 그렇기 때문에 이러한 코드들은 아래와 같이 안전하게 바꿔야 한다.

 

 

참조 : 한국인터넷 진흥원 기술안내서 가이드

 

 

 

참조


한국인터넷 진흥원 : https://www.kisa.or.kr

댓글