1. SQL이란?
ð DB에게 내리는 명령어
2. DB란?
ð 데이터를 저장하는 곳
Ex) DB가 엑셀이면, 파일은 Database ,
ð Sheet는 Table, 행은 로우(가로줄), 열은 컬럼(세로줄)
3. SQL 인젝션 숙지해야되는 명령어https://sinsung0711.tistory.com/8
1) Select 문법
ð DB에서 정보를 검색할 때 사용하는 기본 명령어
ð Select [컬럼 이름(열)] from [테이블 이름]
2) Where [조건문]
ð 조건 또는 조건식의 결과로 동작
ID | PSSWORD | NAME |
Nomaltic | 1234 | Nomaltic |
mario | 1111 | mari |
ð Select id from member where name =’Nomaltic’
(조건이 노멀인 데이터중에서 아이디만 가져오는 것)
4. SQL 인젝션이 일어나는 근본적인 이유
ð WAS는 개발자가 정해둔 SQL문을 가지고 있는데 사용자에 값을 넣어서 실행한다(WAS가 갖고 있던 SQL문이 변조되는 것)
5. 로그인 과정 분석
1) 식별
ð 그 사람의 정보를 가져오는 것
(DB에 노말틱인 정보를 찾아오는 것, 가져오는 것)
1-2) 식별 정보
ð 식별을 사용하는데 사용하는 정보 , 일명 ID라고 함
(Primary key , 중복된 아이디가 있으면 안됌)
2) 인증
ð 그 사람의 정보가 맞는지 확인하는 것
(DB에 노말틱 정보를 가져온 후 비교하는 것)
2-2) 인증정보
ð 노출되면 안됌, 비밀번호 , OTP , 등
6. 로그인 로직
1) 식별/인증 동시(만들어내신 말이라고함)
ð SQL 질의문 한번으로 식별과 인증을 동시에 해버리기
예시. select * from member where id =’normaltic’ and pass = ‘1234 (아이디가 ‘normaltic’이면서 비밀번호는 ‘1234’인 조건문(이후 if문을 사용)
If(SQL 질의 결과 데이터가 존재){
로그인 성공
}else[
로그인실패
}
2) 식별/인증 분리
예시 . select pass from member where id=’normaltic’
If(db_pass == in_pass){
로그인 성공
}else{
로그인 실패
}