이지우 - 취약점 조치(세금계산서 발행 시 본인 ID로만 등록, 본인 게시글만 수정, 환불 시 보유 금액 비교 추가)

This commit is contained in:
jiwoo 2023-08-02 10:39:25 +09:00
parent 770bf2f3a0
commit b36b4229cb
4 changed files with 33 additions and 0 deletions

View File

@ -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"); // 사용자 정보
//게시글 본인인증 번호 변수 저장

View File

@ -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"));

View File

@ -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<String, MultipartFile> files = multiRequest.getFileMap();
if (!files.isEmpty()) {

View File

@ -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);
}