카테고리 없음

모의 해킹 1주차 공부 이야기!!

h/bhacker 2024. 10. 20. 21:57

처음에는 웹서버란 무엇인가부터 간단하게 시작해서 웹서버가 어떨게 동작하는 지 배웠음.. 정말 신기방기

웹서버
파일을 전달하는 친구
웹 개발. (A (Apache) P(PhP) M(MySQL))

**웹서버에게 파일을 (어떻게)  달라고 할까
웹 브라우저를 통해서 파일을 요청할 수 있다.

URL
프로토콜 //도메인이름혹은 IP주소   : 포트/ 파일경로
[Protocol]://[Domain or IP Address] : [Port]/[File Path] 이런 식으로 사용

ex) http 프로토콜을 쓰고싶다면
http://IP주소 작성:80/

[Web Root 경로]
/var/www/html/ 보통 이 뒷부분이 Web Root 경로임
강의에서는 파이썬으로 진행했기 때문에 파이썬을 실행한 기준 이여서 현재 위치가 경로가 됨


뒤에 파일을 달라고 적지 않으면 기본적으로 웹서버는 index파일을 줌 즉, www.naver.com/이렇게게 되어 있으면 그냥 index페이지가 나오고 https://nid.naver.com/nidlogin.login?url=https%3A%2F%2Fmail.naver.com%2F www.naver.com이것뒤에달린것이 어떤 파일이나 로그인 등 이 붙으면 그것에 해당하는 기능이 실행됨
ex)index파일에 test라는 것이 있는 것을 만들고 웹서버
http://IP주소 / 이렇게 해서 실행하면 test라는 글자가 나옴


멜논포트
사회적 약속,
규범
http →80 무조건 80을 써야 하는 것은 아님
https →443

WAS : Web Application Server - WAS - DB

[-]만약?! 성적표를 나눠 주는 웹서버
A, B, C
웹서버 : A_score.txt, B_score.txt, C_score.txt

이것을 동적으로 받고 싵다면
<html>
        <h1> Score</h1>
<h2>Name : <?php echo $_GET['name']; ?></h2>
</html>

        <?php echo $_GET['name']; ?>이 부분은 html에서 소스보기 등으로 안나옴 네이버도 안나옴
왜일끼? Back-End 부분이라서 그렇다
우리가 소스보기 등으로 볼 수 있는 것은 Fornt-End이다.    


--php --
$_GET['name'] : GET Method로 전달받은 파라미터

파라미터 : (웹페이지가 데이터를 전달받는 것) 사용자가 웹서버에게 전달하는 데이터.

보내는 방법은 2가지임 : GET / POST

GET Method : 파라미터를 URL에다가 붙여서 전달함
프로토콜 / ip주소   /   포트번호/ 파일경로/ 파라미터와 구분하기 위해 ?가 나옴 / 파라미터
http://IP주소:1080/score.php?name=normaltic

Front-Ens VS Back-End
                  서비측 코드 (PHP, ASP, JAP...) (WAS가 실행하는 코드)
클라이언트 측 코드 (브라우저가 실행하는 코드)
(HTML, CSS, JavaScript,,,)

기본적으로 웹페이지에서 데이터를 웹서버에게 전달할때는 <form>를 사용함

GET 방식과 POST 방식은 사용방법이 같다.
차이점은 GET방식은 URL에 다 보여준다는 것과 POST방식은 다 보여주지 않는다는 것이다.

&은 파라미터 구분자임
?뒤부터는 파라미터임

간이 로그인 페이지 만들기 (DB연결 x)
(admin / admin1234) 라고 입력 했을 때 로그인 시켜주는 페이지 만들기

로그인 성공시

 

로그인 실패시

로그인 처리페이지(long.php) 코드

<?php
?>
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
    <title>로그인 결과</title>
</head>
<body>
    <div class="container mt-5 text-center">
        <?php
        if ($_SERVER["REQUEST_METHOD"] == "POST") {
            $id = $_POST['id'];
            $password = $_POST['password'];

            // 로그인 정보 확인
            if ($id === 'admin' && $password === 'admin1234') {
                echo "<h2 class='text-success'>로그인 성공!</h2>";
                echo "<p>환영합니다, <strong>$id</strong> 님!</p>";
            } else {
                echo "<h2 class='text-danger'>로그인 실패</h2>";
                echo "<p>아이디나 비밀번호가 잘못되었습니다.</p>";
            }
        } else {
            echo "<h2 class='text-danger'>잘못된 접근입니다.</h2>";
        }
        ?>
        <a href="login.html" class="btn btn-secondary mt-3">다시 로그인</a>
    </div>
</body>
</html>


로그인 페이지(login.html)

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
    <title>로그인 페이지</title>
    <style>
        body {
            background-color: #f8f9fa;
        }
        .login-container {
            max-width: 400px;
            margin: 100px auto;
            padding: 20px;
            background: white;
            border-radius: 10px;
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
        }
        h2 {
            margin-bottom: 20px;
        }
    </style>
</head>
<body>
    <div class="login-container">
        <h2 class="text-center">로그인</h2>
        <form action="login.php" method="POST">
            <div class="form-group">
                <label for="id">아이디</label>
                <input type="text" class="form-control" id="id" name="id" required>
            </div>
            <div class="form-group">
                <label for="password">비밀번호</label>
                <input type="password" class="form-control" id="password" name="password" required>
            </div>
            <button type="submit" class="btn btn-primary btn-block">로그인</button>
        </form>
    </div>
</body>
</html>

 


System.out.print(" 이상 1주차 공부 정리 및 과제를 올림 
- END - ");

--------------------------------------------------------------------

이상 1주차 공부 정리 및 과제를 올림 
- END -