보안 강화: 랜덤 문자열 생성 방식 개선 및 비밀번호 입력 필드에 autocomplete 속성 추가

This commit is contained in:
Rinjae
2026-02-27 14:59:27 +09:00
parent 34093f37a7
commit a755aec78f
5 changed files with 16 additions and 9 deletions
@@ -80,7 +80,7 @@
<div id="direct-input-area" class="toolbar-group" style="display:none;">
<input type="text" id="direct-jdbc-url" class="form-control form-control-sm" placeholder="JDBC URL" style="width:250px;">
<input type="text" id="direct-username" class="form-control form-control-sm" placeholder="Username" style="width:100px;">
<input type="password" id="direct-password" class="form-control form-control-sm" placeholder="Password" style="width:100px;">
<input type="password" id="direct-password" class="form-control form-control-sm" placeholder="Password" autocomplete="off" style="width:100px;">
</div>
<div class="toolbar-divider"></div>
@@ -198,7 +198,7 @@
</div>
<div class="modal-body">
<p class="small text-muted">변경사항을 커밋하려면 비밀번호를 입력하세요.</p>
<input type="password" id="commit-password" class="form-control" placeholder="비밀번호">
<input type="password" id="commit-password" class="form-control" placeholder="비밀번호" autocomplete="off">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary btn-sm" data-bs-dismiss="modal">취소</button>
+4 -4
View File
@@ -332,7 +332,7 @@
<input type="text" name="userId" class="form-control rounded-left" placeholder="Id" required>
</div>
<div class="form-group d-flex">
<input type="password" name="password" class="form-control rounded-left" placeholder="Password" required>
<input type="password" name="password" class="form-control rounded-left" placeholder="Password" autocomplete="off" required>
</div>
<div class="form-group">
<select name="serviceType" class="form-control rounded-left" placeholder="system" required>
@@ -382,14 +382,14 @@
<input type="text" name="resetUserId" class="form-control rounded-left" placeholder="User Id" required>
</div>
<div class="form-group d-flex">
<input type="password" name="resetPassword" class="form-control rounded-left" placeholder="<%= localeMessage.getString("login.placeholderCurrentPassword") %>" required>
<input type="password" name="resetPassword" class="form-control rounded-left" placeholder="<%= localeMessage.getString("login.placeholderCurrentPassword") %>" autocomplete="off" required>
</div>
<p><%= localeMessage.getString("login.toChangePasswordMessage") %></p>
<div class="form-group d-flex">
<input type="password" name="changePassword" class="form-control rounded-left" placeholder="<%= localeMessage.getString("login.placeholderChangePassword") %>" required>
<input type="password" name="changePassword" class="form-control rounded-left" placeholder="<%= localeMessage.getString("login.placeholderChangePassword") %>" autocomplete="off" required>
</div>
<div class="form-group d-flex">
<input type="password" name="confirmPassword" class="form-control rounded-left" placeholder="<%= localeMessage.getString("login.placeholderConfirmationPassword") %>" required>
<input type="password" name="confirmPassword" class="form-control rounded-left" placeholder="<%= localeMessage.getString("login.placeholderConfirmationPassword") %>" autocomplete="off" required>
</div>
</div>
<div class="modal-footer">
@@ -431,8 +431,10 @@
function generateString(length) {
let result = '';
const charactersLength = characters.length;
const randomValues = new Uint32Array(length);
window.crypto.getRandomValues(randomValues);
for (let i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
result += characters.charAt(randomValues[i] % charactersLength);
}
return result;
}
@@ -307,8 +307,10 @@
function generateString(length) {
let result = '';
const charactersLength = characters.length;
const randomValues = new Uint32Array(length);
window.crypto.getRandomValues(randomValues);
for (let i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
result += characters.charAt(randomValues[i] % charactersLength);
}
return result;
}