이지우 - 취약점 조치(세금계산서 발행 시 본인 ID로만 등록, 본인 게시글만 수정, 환불 시 보유 금액 비교 추가)
@b36b4229cbce0f8712c863d8e5fd541e49ae3a3c
--- src/main/java/itn/let/cop/bbs/web/EgovBBSManageController.java
+++ src/main/java/itn/let/cop/bbs/web/EgovBBSManageController.java
... | ... | @@ -2349,6 +2349,15 @@ |
| 2349 | 2349 |
BoardVO bdVO = bbsMngService.selectBoardArticleWeb(boardVO); |
| 2350 | 2350 |
// String frstRegisterId = bdVO.getFrstRegisterId(); // 관리자 유무 |
| 2351 | 2351 |
|
| 2352 |
+ //230801 이지우 - 본인글 외에 nttId 변조를 통하여 다른 게시글 수정 가능한 취약점 방지 |
|
| 2353 |
+ LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
|
| 2354 |
+ String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId()); |
|
| 2355 |
+ if(!bdVO.getFrstRegisterId().equals(userId)) {
|
|
| 2356 |
+ modelAndView.addObject("message", "잘못된 접근입니다.\n관리자에게 문의하세요.");
|
|
| 2357 |
+ modelAndView.addObject("result", "fail");
|
|
| 2358 |
+ return modelAndView; |
|
| 2359 |
+ } |
|
| 2360 |
+ |
|
| 2352 | 2361 |
UserVO userVO = (UserVO)request.getSession().getAttribute("userVO"); // 사용자 정보
|
| 2353 | 2362 |
|
| 2354 | 2363 |
//게시글 본인인증 번호 변수 저장 |
--- src/main/java/itn/let/mjo/pay/web/MjonPayController.java
+++ src/main/java/itn/let/mjo/pay/web/MjonPayController.java
... | ... | @@ -3385,6 +3385,11 @@ |
| 3385 | 3385 |
@ModelAttribute("mberManageVO") MberManageVO mberManageVO, HttpServletRequest request,
|
| 3386 | 3386 |
ModelMap model, RedirectAttributes redirectAttributes) throws Exception{
|
| 3387 | 3387 |
|
| 3388 |
+ //230801 이지우 추가 - 세금계산서 발행 시 아이디 변조하여 다른 계정의 세금계산서 정보 수정하는 취약점 대응 조치 |
|
| 3389 |
+ LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
|
| 3390 |
+ String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId()); |
|
| 3391 |
+ |
|
| 3392 |
+ mberManageVO.setUniqId(userId); |
|
| 3388 | 3393 |
mberManageService.updateTaxbill(mberManageVO); |
| 3389 | 3394 |
|
| 3390 | 3395 |
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.update"));
|
--- src/main/java/itn/let/mjo/pay/web/RefundController.java
+++ src/main/java/itn/let/mjo/pay/web/RefundController.java
... | ... | @@ -321,6 +321,20 @@ |
| 321 | 321 |
return modelAndView; |
| 322 | 322 |
}*/ |
| 323 | 323 |
|
| 324 |
+ |
|
| 325 |
+ //230802 이지우 취약점 조치 - 보유금액을 변조하여 환불 신청 한 경우 방지 |
|
| 326 |
+ //회원 정보 조회 |
|
| 327 |
+ RefundVO mberInfoVO = refundService.selectRefundMberInfo(refundVO); |
|
| 328 |
+ |
|
| 329 |
+ if(Double.parseDouble(mberInfoVO.getMberMoney()) |
|
| 330 |
+ < refundVO.getRefundMoney()) {
|
|
| 331 |
+ |
|
| 332 |
+ modelAndView.addObject("status", "moreThanUserMoney");
|
|
| 333 |
+ modelAndView.addObject("msg", "현재 회원의 보유금액보다 큰 금액을 환불 할 수 없습니다.");
|
|
| 334 |
+ |
|
| 335 |
+ return modelAndView; |
|
| 336 |
+ } |
|
| 337 |
+ |
|
| 324 | 338 |
String atchFileId = ""; |
| 325 | 339 |
final Map<String, MultipartFile> files = multiRequest.getFileMap(); |
| 326 | 340 |
if (!files.isEmpty()) {
|
--- src/main/webapp/WEB-INF/jsp/web/pay/PayListRefundAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/pay/PayListRefundAjax.jsp
... | ... | @@ -277,6 +277,11 @@ |
| 277 | 277 |
cache: false, |
| 278 | 278 |
//timeout: 600000, |
| 279 | 279 |
success: function (returnData, status) {
|
| 280 |
+ //보유 금액 변조 방지 |
|
| 281 |
+ if(returnData.status == 'moreThanUserMoney'){
|
|
| 282 |
+ alert(returnData.msg) |
|
| 283 |
+ return; |
|
| 284 |
+ } |
|
| 280 | 285 |
if(returnData.msg != null){
|
| 281 | 286 |
alert(returnData.msg); |
| 282 | 287 |
} |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?