wonder

정보보안 스터디 - 2주차 3일 - 로그인 구현 방식 2 본문

hacking study/SQL Injection

정보보안 스터디 - 2주차 3일 - 로그인 구현 방식 2

wonder12 2022. 10. 22. 23:58

 

로그인 구현 방식에는 

1. 식별&인증 동시
2. 식별&인증 분리
3. 동시 (+해시암호화)
4. 분리 (+해시암호화)
5. 동시 (개행)

이 있다고 말씀드렸습니다.

 

제가 이전에 구현했던 방식으로는 PASSWORD(str) 암호화 방식이라서 1번째 방식으로 분류하겠습니다.

이 방법은 간단하지만 보안에 취약하기 때문에 복구를 못하도록 해시암호화가 꼭 필요합니다.

 

 

 

 

2. 식별&인증 분리

방법으로 구현해보겠습니다.

 

항상 세션이 활성화되어있어야 되기 때문에 

lib.php에 session_start(); 적어줍니다.

 

그리고 $connect 로 MYSQL에 연결 되어있음을 변수로 지정했습니다.

 

 

 

lib.php를 include 해주구요,

로그인에서 아이디와 패스워드를 포스트 방식으로 가져왔습니다.

 

패스워드와 함께 불러오는게 아니라

아이디를 먼저 검색해 테이블 모든 열을 불러와 줍니다.

 

SQL쿼리를 등록만 해주면 안되고 실행시켜줘야겠죠?

$result 변수는 MYSQL에 연결해서 쿼리를 실행한다는 뜻입니다.

 

아이디에 맞는 모든 데이터(열)을 불러와 줬으니 

첫번째 행의 결과가 있다면 아이디가 있다는 뜻이기 때문에

그 행의 데이터를 나열해서 불러오게 됩니다.

 

 

데이터를 불러와줬으면

입력한 비밀번호와 DB에 있는 비밀번호가 맞는지 비교합니다.

 

맞다면 '아이디' 라는 이름으로 세션이 생성됩니다. time()으로 생성할 수도 있고 자유롭게 선택하면 됩니다.

 

그리고 세션이 존재한다면 로그인 성공 메세지가 바로 뜹니다.

 

 

 

 

 

1. 식별&인증 동시

와 차이점이라면 조건이 모두 만족할 때 데이터를 가져오는 것이 아니라, 

아이디가 있는지 먼저 체크하고 비밀번호가 맞는지 체크하게 된다는 점인 것같습니다.

 

 

 

 

 

Comments