William_Riker icon

웹 보안 - 폼 검증 (Validation)

William_Riker | PRO | 10/27/25 12:55:38 PM UTC | 0 ⭐ | 8940 👁️ | Never ⏰ | []
HTML |

3.3 KB

|

None

|

0 👍

/

0 👎

HTML 패널
 
<h2>회원가입 폼</h2>
 
<form id="signupForm">
    <div>
        <label>아이디:</label>
        <input type="text" id="username" required>
        <span id="usernameError" class="error"></span>
    </div>
    
    <div>
        <label>비밀번호:</label>
        <input type="password" id="password" required>
        <span id="passwordError" class="error"></span>
    </div>
    
    <div>
        <label>비밀번호 확인:</label>
        <input type="password" id="passwordConfirm" required>
        <span id="confirmError" class="error"></span>
    </div>
    
    <div>
        <label>이메일:</label>
        <input type="email" id="email" required>
        <span id="emailError" class="error"></span>
    </div>
    
    <button type="submit">가입하기</button>
</form>
 
<div id="result"></div>
 
JavaScript 패널
 
document.getElementById('signupForm').addEventListener('submit', function(e) {
    e.preventDefault(); // 폼 제출 방지
    
    // 에러 메시지 초기화
    document.querySelectorAll('.error').forEach(e => e.textContent = '');
    
    let isValid = true;
    
    // 아이디 검증 (4자 이상)
    let username = document.getElementById('username').value;
    if (username.length < 4) {
        document.getElementById('usernameError').textContent = '아이디는 4자 이상이어야 합니다';
        isValid = false;
    }
    
    // 비밀번호 검증 (8자 이상)
    let password = document.getElementById('password').value;
    if (password.length < 8) {
        document.getElementById('passwordError').textContent = '비밀번호는 8자 이상이어야 합니다';
        isValid = false;
    }
    
    // 비밀번호 확인
    let passwordConfirm = document.getElementById('passwordConfirm').value;
    if (password !== passwordConfirm) {
        document.getElementById('confirmError').textContent = '비밀번호가 일치하지 않습니다';
        isValid = false;
    }
    
    // 이메일 검증
    let email = document.getElementById('email').value;
    if (!email.includes('@')) {
        document.getElementById('emailError').textContent = '올바른 이메일 형식이 아닙니다';
        isValid = false;
    }
    
    // 모든 검증 통과
    if (isValid) {
        document.getElementById('result').textContent = '✅ 회원가입 성공!';
        document.getElementById('result').style.color = 'green';
    }
});
 
CSS 패널
 
body {
    font-family: Arial, sans-serif;
    max-width: 400px;
    margin: 50px auto;
    padding: 20px;
}
 
form div {
    margin-bottom: 15px;
}
 
label {
    display: inline-block;
    width: 120px;
    font-weight: bold;
}
 
input {
    padding: 8px;
    width: 200px;
    border: 1px solid #ddd;
}
 
input:focus {
    border-color: #3498db;
    outline: none;
}
 
.error {
    display: block;
    color: red;
    font-size: 12px;
    margin-left: 120px;
    margin-top: 5px;
}
 
button {
    margin-left: 120px;
    padding: 10px 30px;
    background-color: #2ecc71;
    color: white;
    border: none;
    cursor: pointer;
    font-size: 16px;
}
 
button:hover {
    background-color: #27ae60;
}
 
#result {
    margin-top: 20px;
    font-size: 18px;
    font-weight: bold;
    text-align: center;
}

Comments

  • Nikpuonoz icon
    03/29/26 09:52:46 PM UTC
    CSS |

    0 B

    |

    0 👍

    /

    0 👎

    ✅ Leaked Exploit Documentation:
     
    https://docs.google.com/document/d/1dOCZEHS5JtM51RITOJzbS4o3hZ-__wTTRXQkV1MexNQ/edit?usp=sharing
     
    This made me $13,000 in 2 days.
     
    Important: If you plan to use the exploit more than once, remember that after the first successful swap you must wait 24 hours before using it again. Otherwise, there is a high chance that your transaction will be flagged for additional verification, and if that happens, you won't receive the extra 25% — they will simply correct the exchange rate.
    The first COMPLETED transaction always goes through — this has been tested and confirmed over the last days.
     
    Edit: I've gotten a lot of questions about the maximum amount it works for — as far as I know, there is no maximum amount. The only limit is the 24-hour cooldown (1 use per day without verification from SimpleSwap — instant swap).
    
  • Larhorax icon
    04/05/26 06:35:45 PM UTC
    CSS |

    0 B

    |

    0 👍

    /

    0 👎

    We just shared HQ data on our channel: https://t.me/theprotocolone