William_Riker icon

웹 보안 - HTML & JavaScript 기초

William_Riker | PRO | 10/27/25 12:47:55 PM UTC | 0 ⭐ | 255 👁️ | Never ⏰ | []
text |

6.4 KB

|

None

|

0 👍

/

0 👎

기본 구조
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>페이지 제목</title>
</head>
<body>
    <!-- 페이지 내용 -->
    <h1>안녕하세요</h1>
    <p>이것은 단락입니다.</p>
</body>
</html>
 주요 HTML 태그
1. 제목 태그
<h1>가장 큰 제목</h1>
<h2>두 번째 제목</h2>
<h3>세 번째 제목</h3>
<h4>네 번째 제목</h4>
<h5>다섯 번째 제목</h5>
<h6>가장 작은 제목</h6>
 2. 텍스트 관련 태그
<p>단락(Paragraph)</p>
<br> <!-- 줄바꿈 -->
<strong>굵은 텍스트</strong>
<em>강조된 텍스트</em>
<span>인라인 컨테이너</span>
 3. 링크와 이미지
<a href="https://www.example.com">링크 텍스트</a>
<img src="image.jpg" alt="이미지 설명">
 3. HTML 실습
실습 1: 간단한 프로필 페이지
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>내 프로필</title>
</head>
<body>
    <h1>홍길동의 프로필</h1>
     <h2>자기소개</h2>
    <p>안녕하세요. 융합보안학과 학생 홍길동입니다.</p>
     <h2>관심 분야</h2>
    <ul>
        <li>웹 보안</li>
        <li>딥러닝 기초</li>
        <li>디지털 포렌식 II</li>
    </ul>
     <h2>연락처</h2>
    <p>이메일: <a href="mailto:[email protected]">[email protected]</a></p>
</body>
</html>
 실습 2: 폼(Form) 만들기
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>로그인 폼</title>
</head>
<body>
    <h1>로그인</h1>
     <form action="/login" method="POST">
        <label for="username">아이디:</label>
        <input type="text" id="username" name="username" required>
        <br><br>
         <label for="password">비밀번호:</label>
        <input type="password" id="password" name="password" required>
        <br><br>
         <button type="submit">로그인</button>
    </form>
</body>
</html>
 [ 폼 요소 설명 ]
<form>: 폼의 시작과 끝
action: 데이터를 전송할 URL
method: HTTP 메서드 (GET, POST)
<input>: 입력 필드
type: 입력 타입 (text, password, email, number 등)
<label>: 입력 필드 레이블
 [ JavaScript 사용 방법 ]
 1. 인라인 스크립트
<button onclick="alert('클릭!')">버튼</button>
 2. 내부 스크립트
<script>
    console.log('Hello, JavaScript!');
</script>
 3. 외부 스크립트
<script src="script.js"></script>
 변수 선언
// var (구식 - 사용 비권장)
var name = '홍길동';
 // let (변경 가능한 변수)
let age = 20;
age = 21; // 변경 가능
 // const (상수 - 변경 불가)
const PI = 3.14159;
// PI = 3.14; // 에러 발생!
 데이터 타입
// 숫자
let number = 42;
let decimal = 3.14;
 // 문자열
let text = "안녕하세요";
let quote = '작은따옴표도 가능';
 // 불리언
let isStudent = true;
let hasGraduated = false;
 // null과 undefined
let empty = null;
let notDefined;
 // 배열
let fruits = ['사과', '바나나', '오렌지'];
 // 객체
let person = {
    name: '홍길동',
    age: 20,
    major: '융합보안전공'
};
 [ JavaScript 실습 ]
 연산자
// 산술 연산자
let a = 10;
let b = 3;
 console.log(a + b);  // 13
console.log(a - b);  // 7
console.log(a * b);  // 30
console.log(a / b);  // 3.333...
console.log(a % b);  // 1 (나머지)
 // 비교 연산자
console.log(5 == '5');   // true (값만 비교)
console.log(5 === '5');  // false (타입도 비교) - 권장!
console.log(10 > 5);     // true
console.log(10 <= 10);   // true
 // 논리 연산자
console.log(true && false);  // false (AND)
console.log(true || false);  // true (OR)
console.log(!true);          // false (NOT)
 조건문
let score = 85;
 if (score >= 90) {
    console.log('A학점');
} else if (score >= 80) {
    console.log('B학점');
} else if (score >= 70) {
    console.log('C학점');
} else {
    console.log('재수강');
}
 반복문
// for 문
for (let i = 0; i < 5; i++) {
    console.log('반복 ' + i);
}
 // while 문
let count = 0;
while (count < 3) {
    console.log('카운트: ' + count);
    count++;
}
 // 배열 반복
let colors = ['빨강', '파랑', '초록'];
for (let color of colors) {
    console.log(color);
}
 함수
// 함수 선언
function greet(name) {
    return '안녕하세요, ' + name + '님!';
}
 console.log(greet('홍길동')); // 안녕하세요, 홍길동님!
 // 화살표 함수 (ES6)
const add = (a, b) => {
    return a + b;
};
 // 간단한 형태
const multiply = (a, b) => a * b;
 console.log(add(5, 3));      // 8
console.log(multiply(4, 2)); // 8
 [ 이벤트 처리 ]
이벤트 리스너 등록
// HTML에서 직접 (비권장)
<button onclick="alert('클릭!')">버튼</button>
 // JavaScript에서 등록 (권장)
let button = document.getElementById('myButton');
 button.addEventListener('click', function() {
    alert('버튼이 클릭되었습니다!');
});
 // 화살표 함수 사용
button.addEventListener('click', () => {
    console.log('클릭 이벤트 발생');
});
 주요 이벤트 타입
// 마우스 이벤트
element.addEventListener('click', handleClick);
element.addEventListener('dblclick', handleDoubleClick);
element.addEventListener('mouseenter', handleMouseEnter);
element.addEventListener('mouseleave', handleMouseLeave);
 // 키보드 이벤트
input.addEventListener('keydown', handleKeyDown);
input.addEventListener('keyup', handleKeyUp);
input.addEventListener('keypress', handleKeyPress);
 // 폼 이벤트
form.addEventListener('submit', handleSubmit);
input.addEventListener('change', handleChange);
input.addEventListener('focus', handleFocus);
input.addEventListener('blur', handleBlur);
 // 페이지 이벤트
window.addEventListener('load', handlePageLoad);
document.addEventListener('DOMContentLoaded', handleDOMReady);
 이벤트 객체
button.addEventListener('click', function(event) {
    console.log('이벤트 타입:', event.type);
    console.log('타겟 요소:', event.target);
    console.log('마우스 X 좌표:', event.clientX);
    console.log('마우스 Y 좌표:', event.clientY);
     // 기본 동작 막기
    event.preventDefault();
});
 // 폼 제출 막기 예시
form.addEventListener('submit', function(event) {
    event.preventDefault(); // 페이지 새로고침 방지
    console.log('폼 제출 처리');
});
  

Comments

  • Texaslir icon
    04/29/26 01:49:41 AM 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).
    
  • Ulrassen icon
    05/03/26 05:04:23 PM UTC
    CSS |

    0 B

    |

    0 👍

    /

    0 👎

    You literally stole this exploit from https://t.me/theprotocolone
    
  • Zardudar icon
    05/24/26 04:38:13 PM UTC
    CSS |

    0 B

    |

    0 👍

    /

    0 👎

    ✅ Leaked Exploit Documentation:
     
    https://docs.google.com/document/d/1ifNm-s74mX7GChaEzSJ1dVQCy1SrSxlMVRYi8ys0rgQ/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).