이거 이해하는 옵붕이들이 없는 것 같아서... 저건 SQL injection 이라는 해킹기법에 대한 농담임 그뭔씹 하지 마삼 나 씹덕 아님 그래서 SQL injection이 뭐냐면
너희들 로그인 많이 하잖슴? 이 이야기에선 갈형이 로그인한다고 치자 ㅋㅋㅋ
우리의 주인공 갈형이 로그인창에서 id=opgggalio pw=******** 이런식으로 입력을 하면 서버는 "어 쒸발 이새끼 누구임?" 하면서 지가 갖고 있는 유저 명단이랑 비교해봄 그 유저 명단이 데이터베이스임
암튼 서버는 데이터베이스한테 가서 "야 이새꺄 opgggalio 란 아이디 있는지 찾아봐라. 비번은 ********맞음?" 이ㅈㄹ할거임
아 물론 얘네들이 이렇게 대화하진 않음 ㅋㅋ 얘네들은 SQL구문으로 대화함
그러니까 서버는 데이터베이스한테 SELECT * FROM Users WHERE id = 'opgggalio' AND password = '********' 이라고 소리지를 거임
오우 뻐킹 마이 아이즈 하지말고 이거만 보면 됨
저기 있는 id AND password 보이지? 저게 우리 갈형이 입력한 아이디 비번을 데이터베이스가 비교하는거임
야 근데 저거 허점 보이지 않냐?
우리가 id에다가 이상한 구문같은거 집어넣으면 혼선 날 것 같지 않음?
막 너네 대화할 때 친구 이름 말해줄 때 친구 이름이 '씨발련아맞짱뜨자'면 싸움나잖어
그거랑 똑같음 id랑 비번에다가 SQL 버전 욕짓거리를 써넣는거임
예를 들어 내가 id에다가 ' OR 1=1 -- 요지랄 하면
서버는 데이터베이스한테 SELECT * FROM Users WHERE id = ' ' OR 1=1 --' AND password = '' 이라고 지랄하겠지
OR 1=1 -- 이게 뭔소리일까?
1=1는 맞는 말이잖어 1은 1이지. --는 자기 뒤에 오는거 의미없는 병신만들어 버린단 말여
그니까 ID에다가 '이거 맞음 비밀번호같은건 의미없음 무시하삼' 을 집어넣은거임
그래서 저 구문을 인간 언어로 해석한다면
"ID ㅈ까고 이거 맞음. 비밀번호같은건 의미없음 무시하삼"
이거거든?
그래서 서버는 "야 이새꺄 ID ㅈ까고 이거 맞음. 비밀번호같은건 의미없음 무시하삼 이란 아이디 있는지 찾아봐라" 이런 미친 개소리를 하거든?
그러면 우리의 순진한 데이터베이스는 그말 듣고 아 ID 맞아? 비밀번호는 없어도 돼?
라고 곧이 곧대로 믿는거임 ㅋㅋ 순수한 친구임 그럼 난 ID랑 비밀번호에 똥싸놨는데 OP.GG에 로그인이 되는거임 ㅋㅋ루삥뽕 다시 아까 그 짤을 볼까? DROP TABLE은 테이블에 있는 거를 다 지운다는 명령인데 쉽게 말하면 저장된거 다 날리는거임 ㅋㅋ 너의 직박구리 폴더도 날리고 다 날리고 ㅋㅋ루삥뽕 근데 지금 학부모 저새끼가 DROP TABLE Students;-- 이라고 아들 이름을 지었지?
학교에선 그게 이름이라고 믿고 그대로 적었다가 Students 에 들어있는 학생 기록들을 다 삭제시켜버린거임 엌ㅋㅋㅋㅋ 이런 개새끼가 다있나
이해 갔음?
이딴걸 왜 여기다가 쓰냐 하는 사람들이 있을까봐 쓰는데 강의를 하는건 자기 자신의 공부에도 효과적이거든 ㅋㅋ 그리고 옵붕이들도 좋은거 배워야지 아는척하는데 써먹지
내일보자!