비회원이 작성한 비밀글에 대한 URL 직접 접근이 가능한 문제를 발견하였고, 이를 해결하기 위해 세션에서 검증이 완료되었는지 확인하는 단계를 추가하였다. 특히, 비밀번호 인증 성공 시 세션에 인증 정보를 저장, 이후 접근 시 인증 여부를 검증하는 로직을 구현하였다. 또한, 세션 유지 시간을 설정하는 방법에 대해서도 설명하였다. ✨시작하며 전자정부 프레임워크에서 프로젝트 수행 중 비회원이 작성한 비밀글에 대해 URL 직접접근이 가능한 것을 확인했다. list로 불러올 경우 비밀글에 접근하려면 암호를 입력해야 하지만, view로 직접 URL을 입력해 접근하면 암호 입력 과정 없이 글에 접근할 수 있게 된다. 이렇게 되면 URL을 유추하거나 URL을 입력해 타인의 게시글에 접근이 가능해진다. 따라서 list에..
Drag and Drop Event로 첨부파일을 업로드하는 과정에서 발생한 문제와 해결 과정을 담은 글이다. 파일을 Drag and Drop하여 업로드하는 기능이 적용되지 않는 문제를 발견하고, 이를 해결하기 위해 코드를 분석하며 여러 시도를 했다. 이 과정에서 뤼튼의 도움을 받아 문제를 해결했는데, jQuery 이벤트 객체를 사용하면 e.dataTransfer가 정의되지 않는 문제를 발견했다. 이를 바탕으로 코드를 수정하니 문제가 해결되었다. ✨시작하며 전자정부 프레임워크에서 프로젝트 수행 중 첨부파일 부분은 Drag and Drop Event가 정상적으로 적용되었는데, 파일첨부와 썸네일이 들어가는 게시판 스킨들에서 썸네일을 Drag and Drop Event로 등록 시 정상적으로 첨부파일이 업로드가 ..
게시글의 예약번호 첫 글자가 3인지 아닌지를 charAt을 사용해 판별하던 중 문제가 발생했다. 이를 해결하기 위해 java.lang.String 클래스의 substring() 메서드를 활용하여 예약번호 첫 글자를 잘라내고, 비교 연산자를 사용해 3인지 아닌지를 검증했다. 이 과정에서 ==와 eq의 사용에 대한 고민이 있었으나, GPT의 조언을 따라 특정 상황에서 둘 중 어느 것을 사용해도 큰 차이가 없음을 알게 되었다. ✨시작하며 전자정부 프레임워크에서 프로젝트 수행 중 게시글의 예약번호의 첫 글자가 3일 경우와 아닐 경우를 charAt을 사용해 구분해주었다. charAt을 사용해 구분하는 것이 잘못된 방법이었는지 예약번호의 첫 글자가 3임에도 계속 eq쪽 jstl이 아닌 ne쪽 jstl을 탔다. 그래..
lucy-xss-servlet-filter와 multipartFilter 적용 후 이슈가 발생했다. CMS에서 Ckeditor를 통해 작성한 글에서 태그가 그대로 노출되는 현상을 발견하고, lucy-xss-servlet-filter-rule.xml의 url-rule-set 수정을 시도했으나 실패했다. 이후 XssPreventer.unescape를 이용한 특수문자 역치환 작업을 수행하여 문제를 해결했다. ✨시작하며 전자정부 프레임워크에서 프로젝트 수행 중 lucy-xss-servlet-filter와 multipartFilter를 적용한 후, 다시 기능 개발을 하며 테스트 및 수행을 하고 있었다. CMS에서 Ckeditor를 통해 글을 작성한 다음 Reservation Detail 페이지에서 태그가 그대로 ..
filterMultipartResolver를 거치면서 lucy 필터가 적용되지 않아 web.xml에 multipartFilter를 추가하였으나, 이로 인해 첨부파일 업로드 시 500 에러가 발생하였다. 이를 해결하기 위해 server.xml 및 context.xml을 수정하였다. server.xml은 서버의 실행 시점에 동작을 준비하는 xml 문서로, context-path 설정이 가능하다. 반면 context.xml은 웹 어플리케이션의 지원을 명시해주는 파일로, 웹을 읽어 실행하고 DB를 연결하는 기능을 수행한다. ✨시작하며 전자정부 프레임워크에서 프로젝트 수행 중 lucy-xss-servlet-filter를 사용해 XSS 취약점을 조치 하는데 filterMultipartResolver를 거치게 되면 ..