그누보드 5.4이상에서 비번 형태? 채택완료
안녕하세요?
그누보드 5.4버전이상에서는 패스워드 처리와 저장이 Mysql의 자체 password 처리방식을 사용하지 않는다고 하는데, 시스템에서 특별히 비번을 비교해야 하는 경우가 있어서 코드를 짤 때 난감해진 부분이 있습니다.
가령 두 사용자의 비번을 동일하게 '1234'로 저장을 하고 데이터베이스에서 두 사용자 비번을 확인해 보면
암호화된 문자열이 동일하지가 않은 것을 발견하게 됩니다.
보안상 바람직하다고는 할 수 있지만, 가끔 사용자 비번을 요구해야 할 경우에 어떤 방법으로 비교하는
코딩을 해야 하는지 잘 이해가 가지 않습니다.
여러 사용자 비번을 같은 '1234'로 입력된 비번을 각기 다르게 암호화된 문자열이 난수처럼 발생시켜 저장했음에도 같은 비번입력으로 해당 사용자를 인증하는 방법도 신기한 것 같구요...
일단 가장 궁금한 것은 사용자가 입력한 패스워드가 저장된 비번과 맞는지 확인하는 코딩의 서식입니다.
도움을 주시면 감사하겠습니다.
답변 2개
config.php 파일에
define('G5_STRING_ENCRYPT_FUNCTION', 'create_hash');
이부분을 create_hash를 sql_password로 세팅하면
sql_password 방식으로 사용가능 할겁니다.
답변에 대한 댓글 2개
지금 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">https://github.com/gnuboard/gnuboard5/blob/b01adc51c78745133be44b5c3e585acd49da55c8/lib/common.lib.php#L3463-L3472
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
그런데 시스템 운영이 진행되는 중에 create_hash를 sql_password로 바꾸어도
적용이 될까요?... mb_password 필드의 데이터들이 다시 바뀌어야 할 것 같은데요...