정보보안 스터디 - 1주차 2일 - 로그인 페이지 개발
처음부터 이게 나올 줄은 몰랐습니다...
하지만 그 전에 한 번 Php 게시판을 만들어 봤었기 때문에, 이번 과제는 빠르고 쉽게 할 수 있었습니다. 휴
notepad++ 설치
로그인 페이지를 만들기 위해서는
php 작동이기 때문에
vi 편집기로만 코딩할 수 없기 때문에
Visual studio code는 파일 전송 방법을 모르겠고..
그냥 보기가 편한 notepad++ 을 설치 해야했습니다.
snap 설치
$ sudo apt install snapd snapd-xdg-open
snap을 통한 notepad++ 설치
$ sudo snap install notepad-plus-plus
하지만 여기서 열리는줄 알았으나, 실행이 안되고 막혔기 때문에
Windows의 Visual studio code를 사용해 편집 하고 난 뒤 APM에 적용 하는 방법으로 하겠습니다.
일단 메인페이지 main.php 부터 만들겠습니다.
단축키!를 눌러 Doctument 템플릿을 쉽게 불러오겠습니다.
그 후 로그인 페이지(login.php)로 이동하는 링크를 붙여줍니다.
(여기서 html코드와 php는 구분시켜주어야하기 때문에, html은 그냥 쓰시면 되고 중간중간 php 만
<?php ~ ?>로 붙여주었습니다.)
클릭을 하면 login.php로 연결이 됩니다.
login.php도 만들어 보겠습니다.
마찬가지로 굳이 쓰지않아도 큰 문제가 없지만 <!Doctype>을 만들어주었구요!
우리는 이 로그인정보들(아이디, 패스워드)을 sql.php라는 유저확인 페이지로 이동시킬 것입니다.
폼형식으로 만들어 준 뒤 이 정보들을 POST(숨기는)형식으로 sql.php에 보내겠다 라는 뜻입니다.
보기 좋게 테이블로 감싸줘서 꾸몄구요.
핵심 내용인 아이디, 패스워드는
input == 사용자가 입력할 수 있게 했고 지정한 변수값 name은 "id" , "pw"입니다.
드디어 sql.php에게 POST형식으로 정보를 줬습니다.
준다고 해서 스스로 받아지는게 아니라 sql.php는 정보를 받는 코딩을 넣어야하고
DB에 연결해서 사용자정보를 찾아오겠다는 코딩까지 넣어야합니다.
(참고로 저는 SQL Injection을 예방하기 위한 시큐리티 코딩을 넣었습니다.)
쿼리문을 간단하게 설명하자면
아이디와 패스워드가 일치할때만 users 라는 테이블에 정보를 가져옵니다. 패스워드는 암호 처리를 했습니다.
만약에 $data가 존재한다면 세션이 생겨서 로그인되고, list.php로 바로 이동시키게 됩니다. (이부분은 자바스크립트 처리를 해줘야되서 <?php?>구문을 끊었습니다.)
그게 아니라면, 로그인 정보가 올바르지 않다고만 나옵니다.
여기에서 lib.php파일이 있는데
설명하기 전에 MySQL 설정 부터 먼저 하겠습니다.
phpmyadmin에서 사용자 추가를 해줍니다. (wonder, localhost, 암호: 123456로 설정. 모든 권한을 주었습니다.)
또한 데이터 베이스, 테이블 까지 만들어 줍니다.
저는
데이터베이스: login
테이블: users
컬럼:
id (200자 이내)
pw (200자 이내)
로 설정했습니다.
Php기반으로 웹사이트를 만들 것이고, Back-end인 DB를 코딩으로 연결시켜주어야합니다.
lib.php를 만들고 DB와 연결시켜줍니다.
$connect = mysqli_connect(호스트, 사용자명, 암호, 데이터베이스명); 으로 DB에 연결한다는 뜻이고
만약에 오류가 떳을 때 메세지를 뜨도록 했습니다.
이 lib.php 를 DB연결 시켜야하는 작업을 할때 무조건 include 해주어야 오류가 안납니다.
* list.php로 이동이 되었을 때를 만들겠습니다.
마찬가지로 여기도 include를 시켜주고
로그인 세션을 불러옵니다.
만약, 로그인이 안되었다면 >>> 회원만 접근가능xxx 띄우고 바로 종료합니다.
로그인이 되었다면 list를 볼 수 있게 뜨구요.
로그아웃도 해야 되니까
logout.php를 만듭시다.
세션을 없애고
로그아웃 되었다고 뜹니다.
그리고 리스트에 가보면 접근 불가네요.
마무리
Visual Studio Code로 만든 파일을 서버로 이동시켜야합니다.
가상서버는 붙여넣기가 안되기 때문에
putty 실행해서 vi sql.php 등등.. 직접 붙여넣기 하면 됩니다.
막 오류나고 실제로 구동 될줄 몰랐는데 putty에서도 되니까 너무 신기했읍니다.!