표준프레임워크 공통컴포넌트 보안강화 패치 후 문제 발생 할 경우 보면 됨
egovframework.com.utl.wed.web.EgovWebEditorImageController.java |
- 기존코드 |
/** * 이미지 view를 제공한다. * * @param request * @param response * @throws Exception */ @RequestMapping(value="/utl/web/imageSrc.do",method=RequestMethod.GET) public void download(HttpServletRequest request, HttpServletResponse response) throws Exception { String subPath = this.decrypt(request.getParameter("path")); //2017.12.12 - 출력 모듈 경로 변경 취약점 조치 //저장파일경로 > 디텍토리 변경 체크 subPath = EgovWebUtil.filePathBlackList(subPath); String physical = this.decrypt(request.getParameter("physical")); physical = EgovWebUtil.filePathBlackList(physical); String mimeType = this.decrypt(request.getParameter("contentType"));
EgovFormBasedFileUtil.viewFile(response, uploadDir, subPath, physical, mimeType); } |
- 변경코드 |
/** * 이미지 view를 제공한다. * * @param request * @param response * @throws Exception */ @RequestMapping(value="/utl/web/imageSrc.do",method=RequestMethod.GET) public void download(HttpServletRequest request, HttpServletResponse response) throws Exception { //2017.12.12 - 출력 모듈 경로 변경 취약점 조치 //저장파일경로 > 디텍토리 변경 체크 String subPath = this.decrypt(replaceParameter(request.getParameter("path"))); subPath = EgovWebUtil.filePathBlackList(subPath); String physical = this.decrypt(replaceParameter(request.getParameter("physical"))); physical = EgovWebUtil.filePathBlackList(physical); String mimeType = this.decrypt(replaceParameter(request.getParameter("contentType")));
EgovFormBasedFileUtil.viewFile(response, uploadDir, subPath, physical, mimeType); } |
로 조치가 되었었는데 주기적으로 사진 업로드 후 이미지 경로 복호화 시 에러가 남.
- GET 메소드에 의해 얻어진 데이터들은 환경변수 QUERY_STRING에 저장되어 있는데, 이러한 데이터들은 name=value의 쌍으로 얻어집니다.
요게 안맞아버리면 당연히 안되징.
간헐적으로 왜 에러가 날까? 보니 base64 에러임. 암호해쉬 디버깅 시 경로에 '+' string이 들어가면 자동으로 ' ' 공백으로 바꿔버리는 버그가 있음.
디코딩 시 에러라 보면됨.
그 외에도 존재하지만 그 외에서 걸리는 걸 못봄(테스트 20번 해봄)
복호화 메소드or미소드(도대체 뭘 써야하나?) 를 EgovWebEditorImageController.java 에 추가함.
public String replaceParameter(Object obj){ return ((String)obj).replaceAll(" ", "+"); }
/** |
'표준프레임워크_eGovFrame > 공통컴포넌트_Common Components' 카테고리의 다른 글
MacOS 표준프레임워크 공통컴포넌트 3.8 첨부파일 위치 찾기 (0) | 2019.08.06 |
---|---|
표준프레임워크 공통컴포넌트 3.8 HTMLTagFilter 특정 페이지 미적용하기(javaconfig 방식) (0) | 2019.07.24 |
표준프레임워크 3.8 공통컴포넌트 권한관리 (1) | 2019.07.18 |
표준프레임워크 공통컴포넌트 3.8 MySQL DB 연결 에러 (1) | 2019.07.17 |
표준프레임워크 공통컴포넌트 3.8 HTML 5 Multi Upload (0) | 2019.07.02 |