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

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

QA

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

답변 2

본문

안녕하세요?

그누보드 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

 

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
  • 질문이 없습니다.
전체 0
© SIRSOFT
현재 페이지 제일 처음으로