본문 바로가기

Project10

sha256 해쉬로 로그인 구현하기 이전에 사용하던 password_hash는 시간에 따라 달라지는 알고리즘을 갖고 있어, 유저가 로그시기에 입력한 비밀번호와 회원가입시 시간이 달라, 식별/인증 동시 방식으로비교할 수 가 없어 sha256해쉬로 변경하게 되었다. $hashPw = password_hash($userPw, PASSWORD_DEFAULT); 이전 위의 코드에서 $hashPw = hash("sha256", $userPw); 이렇게 변경만 해주면 가능했다. where조건문에 아이디, 패스워드 동시방식으로 셀렉트 가능했으며 아이디에 해당하는 패스워드만 조회해 php코드안에서 비교하는 것 둘다 가능했다. 이전의 password_hash는 시간에 따라 값이 변하기 때문에 php 코드상에서 password_verify()를 통해 값을 검.. 2021. 10. 28.
로그인 인증 비밀번호 해시 ( password_verify ) 추후에 sql 인젝션 정보보안 관련해서 공부를 위해, 많이 쓰이는 로그인 방식을 5가지 케이스 별로 구현하고 있는중이다. 1. 식별/인증 동시방식 - 한번의 sql문으로 디비에서 아이디를 식별하고, 비밀번호를 DB에서 인증하는 방식 2. 식별/인증 분리방식 - sql문으로 디비에서 아이디로 비밀번호를 가져와 코드내부에서 인증하는 방식 3. 식별/인증 동시방식 ( 해쉬처리 ) - 1번에서 비밀번호가 해쉬처리 된것 4. 식별/인증 분리방식 ( 해쉬처리 ) - 2번에서 비밀번호가 해쉬처리 된것 5. 식별/인증 동시방식 ( 개행 ) - sql문이 한줄로 되어 있지않고 엔터 처리된 코드( 인젝션 공격에서 뒤를 주석처리하는 기법이 불가능한 구현방식 ) 이전글에서 password_hash api를 통해 회원가입을 구.. 2021. 10. 27.
패스워드 해쉬처리( password_hash ) 캐이스별 인증 방식 중에 해쉬처리된 비밀번호가 필요해 회원가입 페이지를 만들어 보았다. 서버와 디비 연결은 이전 글에도 설명이 되어 있으니 넘어가고, 필요했던 코드만 작성해 본다. $hashPw = password_hash($userPw, PASSWORD_DEFAULT); password_hash는 PHP버전 5.5부터 사용 가능한 API이며, 뒤에 PASSWORD_DEFAULT 부분은 bcrypt 알고리즘을 사용하며, 여러 옵션들을 통해 다른 알고리즘을 사용할 수 있다. $mSql = "select id from member where id = '".$userId."';"; $result = mysqli_query( $mysqli , $mSql ); while ($rows = mysqli_fetch_a.. 2021. 10. 26.
식별 / 인증 분리 방식으로 로그인 구현 로그인 방법 검증중에 식별 / 인증 분리 방식으로 로그인을 구현해 보았다. 식별/인증 분리방식이란 sql 조건문 where 에 아이디와 패스워드를 한번에 넣지않고, 아이디로 패스워드 값을 select 한 후 유저가 입력한 패스워드값과 디비값을 분리하여 인증하는 방식이다. 위에 보면 $mSql = "select pw from member where id = '".$userId."';"; 로 입력한 아이디 값으로 패스워드 값을 먼저 조회해 온다. if (!is_null($existPw)){ #아이디가 존재 if($userPw !== $existPw){ echo ""; session_destroy(); exit; } }else{ #아이디 없음 echo ""; session_destroy(); exit; } 이.. 2021. 10. 25.