일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Los
- lordofsqlinjection
- 프로세스
- 시스템
- 시스템프로그래밍
- 알고리즘
- CCE
- webhacking.kr
- crosssitescripting
- SQL Injection
- 해킹
- 운영체제
- CODEGATE
- ubuntu
- Linux
- SQL
- MySQL
- 웹해킹
- 상호배제
- hacking
- Writeup
- Python
- XSS
- ctf
- rubiya
- WebHacking
- sqli
- webhackingkr
- SQLInjection
- web
- Today
- Total
One_Blog
MYSQL과 함께하는 로그인 로직 살펴보기 (식별과 인증 - 1) 본문
오늘은 제 개인적인 목적으로 공부한
MYSQL 로그인 로직을 알아보도록 하겠습니다.
해당 글에서는
식별과 인증을 동시에 하는 로직
식별과 인증을 분리하여 하는 로직
등을 알아볼 예정이니, 이에 대해 아는 사람은 뒤로가기를 누르길 바랍니다.
로그인?
...을 모르는 사람은 없겠지만, 간단하게 정의를 말해보자면..
사용자가 컴퓨터 시스템이나 통신망에 들어가기 위해 자신의 사용자명과 패스워드를 입력하는 일
라고 할 수 있다.
웹 페이지에 있어서 로그인이란, Database에 저장된 유저의 정보를
ID와 PW를 인증하여 가져오는 행위이다.
해당 행위가 웹안에서는 어떤식으로 이루어지는 지 확인해보도록 하자.
해당 페이지는 내가 직접 제작한 로그인 페이지이다.
Username칸에 ID를, Password칸에 Password를 입력하면
서버가 입력값을 DB로 전송하여 미리 작성되어있는 Query문에 따라 DB를 조회하고
ID / PW가 모두 존재하며, ID PW가 모두 같은 row에 존재하면,
요청한 유저를 로그인 시켜주는 로직이다.
그럼 이제 로그인 로직에 대해 알아보도록 하자.
첫번째로 알아볼 로직은
식별과 인증을 동시에 하는 로직
이다.
해당 로직은 말 그대로, DB에서 유저 ID,PW정보를 조회하려 할 때,
입력한 ID, PW가 DB상에 존재하는 지 한번에 조회하는 방식이다.
사용자의 ID 입력이 $username에, 사용자의 PW입력이 $userpass에 들어간다고 가정했을 때,
식별과 인증을 동시에 하는 로직은
SELECT * FROM member(테이블명) WHERE id='$username' and pass='$userpass';
와 같은 형태로 이루어진다.
말 그대로, id조회(식별)와 pw조회(인증)이 동시에 이루어지는 로직인 것이다.
그렇다면 식별과 인증이 분리되어 이루어지는 로직은 어떤식으로 구성될까?
해당 로직의 경우에는 DB에서 ID를 조회해서 해당 ID가 가진 PW를 불러오고,
그 PW와 사용자가 입력한 PW가 일치하는 지 확인하는 형식으로 이루어진다.
대강 코드를 작성해보자면, (전제조건은 이전 로직과 같다.)
SELECT pass FROM member(테이블명) WHERE id = '$username';
해당 Query문을 통해 password를 불러오고, if문을 통해
사용자의 입력과 불러온 password가 일치하는 지 확인하는 형식이다.
if(조회된password == $userpass)
{
echo"로그인 성공!"
}
과 같은 방식으로 이루어지는 게 식별과 인증을 분리하는 로그인 로직이다.
이상 오늘은 식별과 인증을 하는 로그인 로직 2가지를 알아봤습니다.
내일은 나머지 2개의 로직, with Hash && with \n에 대해 알아보겠습니다.
글 읽어주셔서 감사합니다!
'웹해킹' 카테고리의 다른 글
PHP 로그인 로직 구현 개발 현황 (사진첨부) (0) | 2022.10.26 |
---|---|
MYSQL과 함께하는 로그인 로직 살펴보기 (식별과 인증 - 2) (0) | 2022.10.25 |
SQL INJECTION - SQL Query삽입 취약점 (0) | 2022.10.23 |
MYSQL :: INSERT / UPDATE / SELECT / DELETE 구문 (1) | 2022.10.20 |
MYSQL - 데이터베이스와 테이블 생성구문(기초) (0) | 2022.10.19 |