본문 바로가기
이카루스의 날개/JSP

파라미터에서 특수문자 체크후 history back

by 윙혼 2007. 1. 29.
<%@ page language="Java" contentType="text/html;charset=euc-kr" %>

<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>

<%!
 /**
    * convert unicode code set to local code code set(KSC5601)
    * @param String uniStr
    * @return String
    * @exception java.io.UnsupportedEncodingException
    */
 public static String toLocalCode(String src) throws UnsupportedEncodingException
    {
        if (src == null)
            return null;

        return new String(src.getBytes("8859_1"), "KSC5601");
    }

 /**
    * 특정 특수문자가 있는지 체크한다.
    * @param str
    * @param checkChar 체크할 문자
    * @return boolean
    */
 public static boolean checkString( String str, char[] checkChar )
    {
  boolean bFlag = false;
        if ( str == null || "".equals(str) ) return bFlag;

        char[] arr = str.toCharArray();
        StringBuffer sb = new StringBuffer();
       
  for (int i=0;i<arr.length;i++)
        {
            for (int k=0;k<checkChar.length;k++)
            {
   // System.out.println("arr["+i+"]====="+arr[k]+ "=============checkchar["+k+"]"+ checkChar[k]);
                if ( arr[i] == checkChar[k] )
                {
                    bFlag = true;
                    break;
                }
            }
        }

        return bFlag;
    }
%>
<%
 try
 {
  char[] checkChar = {'^','$','-','+','*','=','<','>','\\','/','[',']','%'};
  Enumeration e = request.getParameterNames();
  while( e.hasMoreElements() )
  {
   String name = (String)e.nextElement();
   String value = "";
   if (request.getMethod().equals("GET")){
    value = toLocalCode(request.getParameter(name));
    value = request.getParameter(name);
   }
   else {
    value = request.getParameter(name);
   }
  // out.println("name="+name+"<br>");
  // out.println("value="+value+"<br>");

   if ( checkString(value,checkChar) )
   {
    out.println("<script language=\"JavaScript\">");
    out.println("alert('파라미터에 허용하지 않는 문자가 존재합니다."+"');");
    out.println("this.history.back();");
    out.println("</script>");
    break;
   }
  }
 }
 catch(Exception e)
 {
 }
%>


'이카루스의 날개 > JSP' 카테고리의 다른 글

세션에서 값 가져오기  (0) 2007.01.29
세션셋팅  (0) 2007.01.29
[펌글]HOW-TO Using apache authorization  (0) 2007.01.29
JSP에서 if로 조건주기  (0) 2007.01.29
특수문자 거르는 스크립트  (0) 2007.01.29

댓글