취약점 점검 수정

This commit is contained in:
eastargh
2026-08-26 13:47:32 +09:00
parent 37817b15a9
commit 9df39e74bd
12 changed files with 325 additions and 51 deletions
+36 -6
View File
@@ -102,7 +102,7 @@
window.location.href = response.redirectUrl;
} else {
// 로그인 실패
alert(response.errorMessage || '로그인에 실패했습니다.');
alert('로그인에 실패했습니다');
}
},
error: function(xhr, status, error) {
@@ -262,7 +262,36 @@
return true;
}
// 비밀번호 변경 요청 (AJAX) - 서버 룰 검증 실패 시 모달을 닫지 않고 비밀번호 입력값만 초기화
function submitChangePassword() {
if (!checkPwd()) {
return false;
}
$.ajax({
url: '<c:url value="/changePassword.do"/>',
type: 'POST',
data: $('#modalLoginForm').serialize(),
dataType: 'json',
success: function(response) {
alert(response.message);
if (response.success) {
window.location.href = response.redirectUrl || '<c:url value="/emergency.jsp"/>';
} else {
$("input[name=changePassword]").val('');
$("input[name=confirmPassword]").val('');
$("input[name=changePassword]").trigger("focus");
}
},
error: function() {
alert("<%= localeMessage.getString("login.pwdchangefail") %>");
}
});
return false;
}
$(document).ready(function() {
$("input[name=userId]").keydown(function(event){
if ( event.which == 13 ) {
@@ -276,12 +305,12 @@
});
$("input[name=changePassword]").keydown(function(event){
if ( event.which == 13 ) {
$('#modalLoginForm').submit();
submitChangePassword();
}
});
$("input[name=confirmPassword]").keydown(function(event){
if ( event.which == 13 ) {
$('#modalLoginForm').submit();
submitChangePassword();
}
});
// Password Change 링크로 직접 열 때만 초기화 (JS에서 modal('show') 호출 시 relatedTarget 없음)
@@ -387,7 +416,7 @@
<span aria-hidden="true">X</span>
</button>
</div>
<form id="modalLoginForm" action="<c:url value="/changePassword.do"/>" method="post" onsubmit="return checkPwd()" novalidate>
<form id="modalLoginForm" action="<c:url value="/changePassword.do"/>" method="post" onsubmit="return submitChangePassword()" novalidate>
<div class="modal-body">
<div id="changeInitPassword">
<div class="form-group d-flex">
@@ -405,7 +434,8 @@
<input type="password" name="confirmPassword" class="form-control rounded-left" placeholder="<%= localeMessage.getString("login.placeholderConfirmationPassword") %>" autocomplete="off" required>
</div>
<span style="font-size:0.8em; color:red">
※ 7글자 이상 & 영문/숫자/특수문자 2종류 이상
※ 7글자 이상 & 영문/숫자/특수문자 2종류 이상<br/>
※ 연속된 숫자/문자(예: 123, abc, qwer), 동일 문자 3자 이상 반복 사용 불가
</span>
</div>
<div class="modal-footer">