JSP - XSS 해킹 방지 연습 예제

오늘의 예제는 XSS(Cross Site Script) 라는 기초적인 공격 방법 및 방지 방법에 대해서 설명합니다.
XSS는 SQL Injection 과 함께 웹 상에서 가장 초보 단계의 공격방법으로서 데이터가 전달 될 Input 박스 안에 스크립트를 작성하여 전달함으로서 의도치 않는 행동을 실행시키거나 쿠키 같은 정보를 탈취하게 됩니다.
본 예제에서는 스크립트의 구성 요소인 < 와 > 를 일반 문자로 치환시켜서 공격을 무력화시키는 방법을 알아봅니다.


<시작▼ | 파일명 : form1.jsp >
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>XSS 해킹 방지 연습(시큐어 코딩에 관해)</h2>
<form action="result1.jsp" method="post">
이름 : <input type="text" name="name">
<input type="submit">
</form>
</body>
</html>
<▲종료▲ | 파일명 : form1.jsp >

<시작▼ | 파일명 :resul1.jsp >
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>XSS(Cross Site Scripting)</h2>
<%
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
if(name !=null){
     name = name.replaceAll("<", "&lt;");
     name = name.replaceAll(">", "&lt;");
}else{
     return;
}
%>
</p>
이름은 <%= name %>
</body>
</html>
<▲종료▲ | 파일명 : result1.jsp >

[ 결과 이미지]




[Github 안내] 
- Github에서 파일을 확인하시려면 바로가기를 눌러주세요.
- 해당 예제는 espriter_practice/WebContent/'03_14_secure_coding_tutorial/xss' 에 있습니다.


본 포스팅은 KIC 캠퍼스에서 박영권 강사의 지도하에 공부하며 작성한 리포트입니다.
혹시 잘못된 내용이 있거나 문제 소지시 댓글 남겨주시면 조치하겠습니다.



댓글(0)

Designed by CMSFactory.NET