hidden은 화면에 보이지 않기 때문에 XSS를 굳이 방어해야 하나 하는 생각이 들수도 있지만 분명히 이곳도 XSS에 대한 방어를 해야 하는 부분이다. (웬만한 보안 검사를 하면 이 부분에 대해 방어해놓지 않을경우 조치하라고 나온다.) Hidden Input value XSS 방어 ... JSTL의 function tag를 사용하였다. fn:excapeXml() 을 통해 XML마크업 문자로 인식될 문자열을 삭제한다. 끝!
프로젝트 초기 구성중 다음과 같은 오류가 발생하였다. java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[na:na] at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[na:na] at org.springframewo..
jsp에서 springboot에서 사용하는 설정파일 (application.yml, application.properties)의 값을 바로 가지고 올 수 있다. application.properties (or application.yml) 파일은 다음과 같이 정의가 되어 있는 상황이다. oing.daddy=cool guy 이 값을 jsp에서 바로 가지고 와서 사용하고 싶다. 가지고 오는 방법은 다음과 같다. 1. @environment.getProperty 를 통해 가져오는 방법 ${oingDaddy} 위와 같이 spring tag를 선언해주고 spring:eval 을 통해서 값을 가지고 올 수 있다. @environment.getProperty 를 통해 properties 파일 (or yml 파일) 의..
jsp 파일중에 65535 byte가 넘는 큰 파일들이 있다. 이 파일들을 읽으려고 할때 설정이 없으면 오류가 발생한다. org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: [100] in the generated java file: [big_jsp.java] The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit 대략 이런 오류이다. 소스의 길이가 엄청 길다는 말이다. 이것을 근본적으로 해결하려면 하나의 큰 jsp 파일을 include를 통해서 여러개로..
파일 업로드는 쉬운듯 쉽지 않고 항상 프로젝트의 이슈의 중심에 서있는것 같다. 갑자기 잘 되던 파일 업로드 기능이 안되는 문제가 생겼다. // Create a factory for disk-based file items DiskFileItemFactory factory = new DiskFileItemFactory(); // Configure a repository (to ensure a secure temp location is used) ServletContext servletContext = this.getServletConfig().getServletContext(); File repository = (File) servletContext.getAttribute("javax.servlet.cont..
이클립스에서 프로젝트를 새로 import 해서 받았는데 the import javax servlet http cannot be resolved 오류가 발생하였다. 문제가 되는 클래스들은 javax.servlet.http.* 에 속해있는 HttpServletRequest, HttpServletResponse 등등이다. 원인은 Java 자체적으로 Servlet을 포함하고 있지 않기 때문이다. 따라서 프로젝트에 Servlet package를 포함시켜주면 된다. 보통은 WAS에서 이런 Servlet package를 가지고 있으므로 프로젝트 Runtime에 참조할 수 있도록 조치를 해주면 된다. 필자는 tomcat 환경에서 진행을 하도록 하겠다. 일단 이클립스에 tomcat이 설치가 되어 있지 않아서 tomcat..
Invalid character found in method name .. HTTP method names must be tokens 이런 이상한 오류가 떨어지며 화면에서는 아예 페이지를 찾을 수 없다는 오류가 나온다. [18:02:15.721][INFO ][o.a.coyote.http11.Http11Processor.log:line175] - Error parsing HTTP request header Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level. java.lang.IllegalArgumentException: Invalid character found in method name [0x160x..
이 오류는 웹 프로젝트를 진행하다보면 흔히 만날수 있는 오류이다. web.xml에서는 Dynamic Web Module이라는것을 3.0으로 정의를 했는데 이것과 project facet 의 version이 다르다는 것이다. project facet 이라는건 다음과 같다. project 우클릭 후 properties 로 진입을 하면 볼수 있는 Project Facets 메뉴가 있다. 이곳에서 문제가 되는 Dynamic Web Module 을 보면 version이 무려 4.0 으로 설정되어있다. web.xml 하지만 내 web.xml 을 보면 3.0 버전을 사용하고 있다. 이 두개의 버전이 달라서 문제가 되는 것이다. 그럼 Project Facets에 들어가서 바꿔주면 되겠네? 하고 들어가서 바꿔보면 .....