Web - Security/Login
-
Captcha - Brute Force(KNN)Web - Security/Login 2023. 7. 19. 12:48
PHP, MySQL로 간단한 로그인 페이지를 구현하였으며 PHP를 이용하여 Captcha 이미지를 생성해 내도록 하였다 실제 사이트에 사용하기엔 보안이 매우 취약하므로 사용하지 않아야 하며 Brute Force를 쉽게 하기위해 0부터 9까지의 숫자만 사용하였다 본 실습은 모두 본인이 소유한 서버와 사이트를 대상으로 진행되었습니다. KNN 이란? KNN은 최근접 이웃법으로 분류 문제에 사용하는 알고리즘이다 새로운 데이터가 들어왔을 때 기존 데이터의 그룹 중 어떤 그룹에 속하는지 분류하는 문제에 주로 이용된다 로그인 페이지 위와 같이 로그인 페이지와 캡차 이미지를 간단히 구현했다 훈련 데이터 생성 로그인 페이지에서 생성된 캡차 이미지를 다운받는다 이때 0부터 9까지 모든 숫자가 있어야 하므로 여러 장 다운로..
-
[JS, PHP, MYSQL] 로그인, 로그인 우회 - 3.2Web - Security/Login 2023. 5. 10. 15:37
로그인 과정에서 입력값에 대해 검증과정을 추가해 주었다 로그인 페이지 이전에 만들어놨던 login_2 데이터베이스와 로그인페이지를 이름만 변경하였다 데이터 베이스 연결 변수명을 login_2에서 login_3으로 바꾼 것을 제외하고 달라진 건 없다 5 ~ 8 로그인페이지의 입력값을 받아오고 아이디와 비밀번호가 있다면 아래의 과정을 이어가고 없다면 로그인 실패처리한다 11 ~ 17 입력받은 아이디와 비밀번호에 대해서 검증과정을 진행한다 trim()은 문자열의 앞뒤에 있는 모든 공백 문자나 다른 문자들을 제거한다 stripslashes()는 문자열에서 백슬래시(backslash)를 제거한다 htmlspecialchars() 함수는 특수 문자를 HTML 엔티티로 변환한다 19 ~ 27 사용자 입력을 받은 SQ..
-
[JS, PHP, MYSQL] 로그인, 로그인 우회 - 3.1Web - Security/Login 2023. 5. 10. 15:32
로그인 과정에서 SQL 질의문에 대해서 검사하는 기능을 만들었다 로그인 페이지 이전에 만들어놨던 login_2 데이터베이스와 로그인페이지를 이름만 변경하였다 데이터 베이스 연결 변수명을 login_2에서 login_3으로 바꾼 것을 제외하고 달라진 건 없다 5 ~ 8 로그인페이지의 입력값을 받아오고 아이디와 비밀번호가 있다면 아래의 과정을 이어가고 없다면 로그인 실패처리한다 11 ~ 19 사용자 입력을 받은 SQL 질의문을 검증하는 단계를 추가해 줬다 완성된 SQL 질의문에서 SELECT, FROM, WHERE 단어의 개수를 구해주고 SELECT, FROM, WHERE의 개수가 모두 1개여야만 데이터베이스에 SQL 질의문을 전달하도록 한다 21 ~ 44 만약 일치하는 회원이 존재한다면 로그인 성공 페이지..
-
[JS, PHP, MYSQL] 로그인, 로그인 우회 - 2.2Web - Security/Login 2023. 5. 4. 13:07
로그인을 하면서 공백이 있으면 로그인이 안되도록 만들어 주었다 로그인 페이지 간단하게 id, pw 만을 데이터로 가지고 있는 테이블을 생성하였다 로그인 페이지를 제작하였다 php코드는 없지만 문제가 없기에 위와 같이 만들었다 로그인페이지에서 입력된 값을 받아와 아이디가 공백인지 먼저 검사하고 해당 정보가 있는지 먼저 조회를 한다 이후 아이디가 있다면 비밀번호가 공백인지 확인하고 다시한번 조회를 하여 로그인하도록 한다 로그인에 실패했을 경우 위와같이 이전페이지로 돌아가도록 해 주었다 데이터베이스 연결 코드와 로그인 페이지다 간단하게 로그인이 되는지 확인하기 위함이여서 로그인완료 페이지에는 별다른 기능이 없다 로그인 테스트 공백으로 로그인을 시도해보니 위와 같이 로그인에 실패하였다 잘못된 값을 넣어봤다 로그..
-
[JS, PHP, MYSQL] 로그인, 로그인 우회 - 2.1Web - Security/Login 2023. 5. 4. 12:32
로그인을 하면서 공백이 있으면 로그인이 안되도록 만들어 주었다 로그인 페이지 간단하게 id, pw 만을 데이터로 가지고 있는 테이블을 생성하였다 로그인 페이지를 제작하였다 php코드는 없지만 문제가 없기에 위와 같이 만들었다 로그인 페이지에서 아이디와 비밀번호에 입력된 값을 uid, pw 변수에 대입해 주고 공백을 검사한다 이후 공백이 없다면 데이터 베이스에 해당 정보가 있는지 조회를 하고 있다면 로그인 없다면 로그인페이지로 돌아가도록 해 주었다 데이터베이스 연결 코드와 로그인 페이지다 간단하게 로그인이 되는지 확인하기 위함이여서 로그인완료 페이지에는 별다른 기능이 없다 로그인 테스트 공백으로 로그인을 시도해보니 위와 같이 로그인에 실패하였다 잘못된 값을 넣어봤다 로그인에 실패했다 정상적인 값으로 다시 ..
-
로그인 인증 - 쿠키, 세션, 세션아이디Web - Security/Login 2023. 4. 29. 21:35
내가 이용하려고 하는 사이트가 있다면 로그인 과정을 반드시 거치게 되어있다 또한 로그인을 이용하여 나만의 정보를 작성하거나 변경하는 등 다양한 작업을 할 수 있다 로그인 과정에 대해 공부하면서 로그인에 필요한 쿠키, 세션에 대해 정리를 해 보았다 클라이언트, 서버 클라이언트 클라이언트( Client )란 물건을 사고 파는데 있어서 고객의 입장이다 웹사이트에 접속을 해서 이용을 하는 우리들은 클라이언트 이다 서버 서버( Server )란 물건을 사고 파는 데 있어서 판매자의 입장이다 서버는 클라이언트들로 오는 정보를 받아들이고 정보에 대한 답을 해준다 쿠키 쿠키 로그인을 완료하고 서버와 내가 통신을 하는 과정에서 서버에게 나의 요청을 알리기 위해선 이 정보가 나의 요청임을 서버에게 알려 줘야 한다 만약 내..
-
[JS, PHP, MYSQL] 로그인, 로그인 우회 - 1Web - Security/Login 2023. 4. 29. 17:17
가장 기본적인 로그인 기능을 만들어 보았고 이를 우회하는 방법을 정리해 보았다 로그인 페이지 데이터 베이스 접속을 위해 데이터 베이스 접속 전용 페이지를 만들어 주었다 mysqli_connect("localhost", "사용자 이름", "비밀번호", "데이터 베이스 이름") 순으로 작성해 줬다 그리고 이 명령어를 $login_1db 라는 변수를 만들어 대입해 주고 다음에 사용할 때는 긴 명령어 대신 짧은 $login_1db를 사용하도록 해줬다 로그인페이지를 만들어 줬다 ! 를 입력하고 엔터를 누르면 나오는 기본적인 세팅으로 하였으며 body 부분에 내용을 추가했다 아이디와 비밀번호를 입력받은 뒤 login_1.php로 값을 보내어 로그인 성공 또는 실패를 확인하도록 했다 데이터 베이스에 접속하기 위해 l..