[System] Default Login System

2024. 5. 3. 17:16정보보안 및 해킹/웹 개발

식별

많은 데이터 중 특정 데이터를 찾아내는 것

unique, 즉 같은 컬럼의 다른 데이터와 중복되지 않는 유일한 값이어야 한다.

보통 PRIMARY KEY로 등록하여 사용

ex) ID

인증

로그인을 시도하는 사람이 정말로 그 유저인지 확인하는 작업

ex) password, OTP

 

식별값 : userid

인증값 : userpassword

 

Hash

일방향 함수. 한 쪽으로 값을 변경할 수 있지만 되돌릴 수 없다.

 

식별과 인증을 동시에

userid와 password를 하나의 쿼리문에서 검사, userpassword는 평문으로 비교

select * from member where id='$user_id' and pass='$user_pass'

식별과 인증을 따로

userid를 먼저 검사한 후 통과하면 userpassword 검사 , userpassword는 평문으로 비교

$sql = select * from member where id='$user_id';

$res = $sql.execute();

$db_pass = sql.res['pass'];

if(db_pass == $user_pass)
{
//로그인 성공
}
else
{
//로그인 실패
}

식별과 인증을 동시에 + Hash

userid와 userpassword를 하나의 쿼리문에서 검사하되, DB에는 userpassword를 해시로 변환한 값이 있고, 사용자가 입력한 userpassword의 값을 해시로 변환하여 그 두 개의 해시가 같은지를 비교

식별과 인증을 따로 + Hash

userid를 먼저 검사한 후 통과하면 userpassword를 검사하는데, DB에는 userpassword를 해시로 변환한 값이 있고, 사용자가 입력한 userpassword의 값을 해시로 변환하여 그 두 개의 해시가 같은지를 비교