그누보드 5.4이상에서 비번 형태?

그누보드 5.4이상에서 비번 형태?

QA

그누보드 5.4이상에서 비번 형태?

본문

안녕하세요?

그누보드 5.4버전이상에서는 패스워드 처리와 저장이 Mysql의 자체 password 처리방식을 사용하지 않는다고 하는데, 시스템에서 특별히 비번을 비교해야 하는 경우가 있어서 코드를 짤 때 난감해진 부분이 있습니다.

가령 두 사용자의 비번을 동일하게 '1234'로 저장을 하고 데이터베이스에서 두 사용자 비번을 확인해 보면

암호화된 문자열이 동일하지가 않은 것을 발견하게 됩니다.

보안상 바람직하다고는 할 수 있지만, 가끔 사용자 비번을 요구해야 할 경우에 어떤 방법으로 비교하는

코딩을 해야 하는지 잘 이해가 가지 않습니다.

여러 사용자 비번을 같은 '1234'로 입력된 비번을 각기 다르게 암호화된 문자열이 난수처럼 발생시켜 저장했음에도 같은 비번입력으로 해당 사용자를 인증하는 방법도 신기한 것 같구요...

일단 가장 궁금한 것은 사용자가 입력한 패스워드가 저장된 비번과 맞는지 확인하는 코딩의 서식입니다.

도움을 주시면 감사하겠습니다.

이 질문에 댓글 쓰기 :

답변 2

config.php 파일에 

define('G5_STRING_ENCRYPT_FUNCTION', 'create_hash');

이부분을 create_hash를 sql_password로 세팅하면 

sql_password 방식으로 사용가능 할겁니다.

 

답변 감사합니다.
그런데 시스템 운영이 진행되는 중에 create_hash를 sql_password로 바꾸어도
적용이 될까요?... mb_password 필드의 데이터들이 다시 바뀌어야 할 것 같은데요...

이미 라이브된 상태라면 mb_password가 이미 pbkdf2 해쉬방식으로 update 되었으니까
지금 config에 설정을 바꿔도 비번이 틀리다고만 나오겠죠..
기존에 그누보드 쓰다가 업데이트 한거라면 아마 멤버단에 mb_password2라는 필드가
새로 생겼을거고 로그인한 회원들은 예전 sql_password방식의 비번을 update 시켜 놨을겁니다.
그 값이 있는지 확인해보세요...

그 값으로 password 통과가 될 수 있는지등 테스트해보시고
create_hash적용 이후에 신규가입한 회원은 mb_password2가 없으니까..
뭔가 다른 조치를 취해야 하지 않나 싶은데여...

check_password() 함수를 사용해 비교하면 됩니다.

https://github.com/gnuboard/gnuboard5/blob/b01adc51c78745133be44b5c3e585acd49da55c8/lib/common.lib.php#L3463-L3472

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 7
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT