JAVA
Servlet 로그인 요청시 유효성 검사 간단 예제소스
정숙씨의 쏠쏠한 코딩
2021. 7. 26. 23:51
- 해당 소스는 예제에 나와있는 참고자료임, 보안 문제가 해결되어 있지 않으니 실 사용에 사용하면안됨.
- loginTest.html
- <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>로그인</title>
</head>
<body>
<form name="fromLogin" method="post" action="/loginTest" enctype="UTF-8">
아이디 : <input type="text" name="user_id"></br>
비밀번호 : <input type="password" name="user_pass"></br>
<input type="submit" value="로그인"> <input type="reset" value="초기화">
</form>
</body>
</html>
- <!DOCTYPE html>
- LoginServelt.java
- package sec04.ex01;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(value = "/loginTest")
public class LoginTest extends HttpServlet {
@Override
public void init() throws ServletException {
System.out.println("init call");
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=utf-8");
PrintWriter out = response.getWriter();
String id = request.getParameter("user_id");
String pw = request.getParameter("user_pass");
if(id != null && (id.length() !=0)) //id가 공백이며 id의 배열이 0이 아닐경우
{
out.print("<html>");
out.print("<body>");
out.print(id+"님 안녕하세요 </br>"); // 정상적인 로그인 Servlet 전송
out.print("</body>");
out.print("</html>");
}
else
{
out.print("<html>");
out.print("<body>");
out.print("정상적인 접근이 아닙니다. </br>"); // 조건이 맞지 않을경우 정상적인 접근이 아니라는 경고창 표시
out.print("<a href='http://localhost:8080/test01/login.html'>로그인 창으로 이동</a>"); // 로그인 메인화면으로 이동
out.print("</body>");
out.print("</html>");
}
}
}
- package sec04.ex01;
- 유효성 검사 예시를 응용하여 Servlet 관리자 페이지 우회 접속 로직
- package sec04.ex01;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(value = "/loginTest2")
public class LoginTest2 extends HttpServlet {
@Override
public void init() throws ServletException {
System.out.println("init call");
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=utf-8");
PrintWriter out = response.getWriter();
String user_id = request.getParameter("user_id");
String user_pw = request.getParameter("user_pw");
if(user_id != null && (user_id.length() != 0))
{
if(user_id.equals("admin"))
{
out.print("<html>");
out.print("<body>");
out.print("<font size = '12'> 관리자로 로그인 하셨습니다.");
out.print("<input type ='button' value ='회원 정보 수정하기'>");
out.print("<input type ='button' value ='회원 정보 삭제하기'>");
out.print("</body>");
out.print("</html>");
}
else
{
out.print("<html>");
out.print("<body>");
out.print(user_id + " 님 어서오세요.");
out.print("</body>");
out.print("</html>");
}
}
else
{
out.print("<html>");
out.print("<body>");
out.print("아이디 및 비밀번호를 확인하세요.");
out.print("<a href ='http://localhost:8080/test01/login.html'>로그인 창으로 이동</a>");
out.print("</body>");
out.print("</html>");
}
}
@Override
public void destroy() {
System.out.println("destroy call");
}
}
- package sec04.ex01;
- loginTest.html