XSS(크로스사이트 스크립트)

김호성👨🏽‍💻·2021년 10월 12일
0

웹 보안

목록 보기
2/2
post-thumbnail

크로스사이트 스크립트는 SQL Injection과 다르게 JS태그 구문의 오류를 이르키는 방법을 말합니다.

예를 들어 게시판에 입력창에 정상적인 제목을 입력하는게 아닌

<script>alert("XSS 공격!!!");</script>

이런식으로 입력하게 된다면 게시판에 내용에는 내용이 보여주는것이 아닌 스크립트 코드가 실행되어 해당 페이지를 오픈할때 마다 Alert 메시지가 나타날 것입니다. 이밖에 location.href 등을 활용하여 해당 페이지를 절때 열수 없게 할수도 있겠네요...

이러한 방법을 막기위해선 여러 방법들이 있지만 저는 해당 <> 태그의 문자를 문자열로 바꾸어 태그로 인식할수 없도록 하였습니다.

	var filter = title.replace(/</g, "&lt;").replace(/>/g, "&gt;"); //xss 필터
	title = filter; //xss 필터된 내용 넣기   < → 문자형태의 '<', > → 문자형태의 '>'
	location.href = "UpdateSql.jsp?no="+no+"&title=" + title +"&content=" + result;

filter 에 들어온 값이 게시판에 제목에 넣을 입력값이라고 생각하시면 됩니다.
해당 데이터에 < 나 > 문자열이 있으면 문자형태로 변경하여 태그로 인식되지 못하게 하는 코드입니다.
게시판으로 예를 들었지만 내가 데이터를 입력하여 태크 형태로 보여주는 곳은 XSS 공격이 가능하니 주의하여 개발하시면 될거같습니다.

0개의 댓글