diff --git a/src/main/java/itn/let/cop/bbs/web/EgovBBSManageController.java b/src/main/java/itn/let/cop/bbs/web/EgovBBSManageController.java index 7b68e99f..a4b39d32 100644 --- a/src/main/java/itn/let/cop/bbs/web/EgovBBSManageController.java +++ b/src/main/java/itn/let/cop/bbs/web/EgovBBSManageController.java @@ -2349,6 +2349,15 @@ public class EgovBBSManageController { BoardVO bdVO = bbsMngService.selectBoardArticleWeb(boardVO); // String frstRegisterId = bdVO.getFrstRegisterId(); // 관리자 유무 + //230801 이지우 - 본인글 외에 nttId 변조를 통하여 다른 게시글 수정 가능한 취약점 방지 + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId()); + if(!bdVO.getFrstRegisterId().equals(userId)) { + modelAndView.addObject("message", "잘못된 접근입니다.\n관리자에게 문의하세요."); + modelAndView.addObject("result", "fail"); + return modelAndView; + } + UserVO userVO = (UserVO)request.getSession().getAttribute("userVO"); // 사용자 정보 //게시글 본인인증 번호 변수 저장 diff --git a/src/main/java/itn/let/mjo/pay/web/MjonPayController.java b/src/main/java/itn/let/mjo/pay/web/MjonPayController.java index 77f7fce9..b923ab59 100644 --- a/src/main/java/itn/let/mjo/pay/web/MjonPayController.java +++ b/src/main/java/itn/let/mjo/pay/web/MjonPayController.java @@ -3385,6 +3385,11 @@ public class MjonPayController { @ModelAttribute("mberManageVO") MberManageVO mberManageVO, HttpServletRequest request, ModelMap model, RedirectAttributes redirectAttributes) throws Exception{ + //230801 이지우 추가 - 세금계산서 발행 시 아이디 변조하여 다른 계정의 세금계산서 정보 수정하는 취약점 대응 조치 + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId()); + + mberManageVO.setUniqId(userId); mberManageService.updateTaxbill(mberManageVO); redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.update")); diff --git a/src/main/java/itn/let/mjo/pay/web/RefundController.java b/src/main/java/itn/let/mjo/pay/web/RefundController.java index 610e579f..d4889d43 100644 --- a/src/main/java/itn/let/mjo/pay/web/RefundController.java +++ b/src/main/java/itn/let/mjo/pay/web/RefundController.java @@ -321,6 +321,20 @@ public class RefundController { return modelAndView; }*/ + + //230802 이지우 취약점 조치 - 보유금액을 변조하여 환불 신청 한 경우 방지 + //회원 정보 조회 + RefundVO mberInfoVO = refundService.selectRefundMberInfo(refundVO); + + if(Double.parseDouble(mberInfoVO.getMberMoney()) + < refundVO.getRefundMoney()) { + + modelAndView.addObject("status", "moreThanUserMoney"); + modelAndView.addObject("msg", "현재 회원의 보유금액보다 큰 금액을 환불 할 수 없습니다."); + + return modelAndView; + } + String atchFileId = ""; final Map files = multiRequest.getFileMap(); if (!files.isEmpty()) { diff --git a/src/main/webapp/WEB-INF/jsp/web/pay/PayListRefundAjax.jsp b/src/main/webapp/WEB-INF/jsp/web/pay/PayListRefundAjax.jsp index b0ae34e7..1dfde27b 100644 --- a/src/main/webapp/WEB-INF/jsp/web/pay/PayListRefundAjax.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/pay/PayListRefundAjax.jsp @@ -277,6 +277,11 @@ function fn_refund_insert() { cache: false, //timeout: 600000, success: function (returnData, status) { + //보유 금액 변조 방지 + if(returnData.status == 'moreThanUserMoney'){ + alert(returnData.msg) + return; + } if(returnData.msg != null){ alert(returnData.msg); }