테스트 사이트 - 개발 중인 베타 버전입니다

며칠전(2월18일경)부터 사용자로긴이 안됩니다.

야매박대목 8개월 전 조회 2,093

- 그누보드 버전

define('G5_VERSION', '그누보드5');
define('G5_GNUBOARD_VER', '5.2.6');

 

- MySQL 버전

Server version: 5.1.73

 

사용자ID와 비번을 맞게 입력해도 bbs/login_check.php 의 

 

include_once('./_common.php');

$g5['title'] = "로그인 검사";

$mb_id       = trim($_POST['mb_id']);
$mb_password = trim($_POST['mb_password']);

if (!$mb_id || !$mb_password)
    alert('회원아이디나 비밀번호가 공백이면 안됩니다.');

$mb = get_member($mb_id);

if (!$mb['mb_id'] || !check_password($mb_password, $mb['mb_password'])) {
    alert('가입된 회원아이디가 아니거나 비밀번호가 틀립니다.\\n비밀번호는 대소문자를 구분합니다.');
}

 

그 전에 특별한 작업이 없었고, 몇년간 잘 운영되었었는데, 갑자기 빨간색 부분에서 에러가 나는 것 같습니다.

 

lib/common.lib.php 에 check_password()가 정의되어 있더군요

function get_encrypt_string($str)
{
    if(defined('G5_STRING_ENCRYPT_FUNCTION') && G5_STRING_ENCRYPT_FUNCTION) {
        $encrypt = call_user_func(G5_STRING_ENCRYPT_FUNCTION, $str);
    } else {
        $encrypt = sql_password($str);
    }

    return $encrypt;
}


function check_password($pass, $hash)
{
    $password = get_encrypt_string($pass);
//    $password = old_password($pass);

    return ($password === $hash);
}
 

물론 특정사용자를 php 스크립트로 비번변경하니 로긴은 다시 됩니다만, 디비변경같은 작업이 없었는데도 불구하고 이런 현상이 발생했습니다. 고견 미리 감사합니다.

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

8개월 전

<?php
    include_once('./_common.php');

    $mb_id = "admin"; // 변경하려는 사용자 ID
    $new_password = "your_password"; // 새 비밀번호

    // 그누보드에서 비밀번호는 get_encrypt_string 함수를 이용하여 암호화됩니다.
    // 이 함수는 내부적으로 SHA256을 이용합니다.
    $new_password_hashed = get_encrypt_string($new_password);

    $sql = "UPDATE {$g5['member_table']}
            SET mb_password = '".$new_password_hashed."'
            WHERE mb_id = '".$mb_id."' ";

    sql_query($sql);
?>

 

요런식으로 강제변경하면 로긴이 잘 됩니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

불주먹
8개월 전

비밀번호가 틀리다고 나오시는 건가요? 아니면 그냥 넘어가지만 로그인이 안된 상태인가요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

야매박대목
8개월 전
네..비번이 틀리다고 나오고 로긴이 안됩니다...
새아이디 만들어서 로긴하면 바로 됩니다.

댓글을 작성하려면 로그인이 필요합니다.

웅푸
8개월 전

ssl 인증 도메인 확인해보시기 바랍니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 6개

야매박대목
8개월 전
확인해 보겠습니다. 감사합니다.
웅푸
8개월 전
기존 회원 비밀번호가 틀리다라고하는 계정 비번을 바꿔보시는데도 틀리다고하시는지요?
야매박대목
8개월 전
<?php
include_once('./_common.php');

$mb_id = "admin"; // 변경하려는 사용자 ID
$new_password = "your_password"; // 새 비밀번호

// 그누보드에서 비밀번호는 get_encrypt_string 함수를 이용하여 암호화됩니다.
// 이 함수는 내부적으로 SHA256을 이용합니다.
$new_password_hashed = get_encrypt_string($new_password);

$sql = "UPDATE {$g5['member_table']}
SET mb_password = '".$new_password_hashed."'
WHERE mb_id = '".$mb_id."' ";

sql_query($sql);
?>

그런 아이디를 강제적으로 바꾸면 로긴이 정상적으로 됩니다.
야매박대목
8개월 전
sendmail 에 문제가 있어서 메일보내서 비번변경하는데에는 시간이 좀 걸릴 것 같습니다.
웅푸
8개월 전
혹시 그누버전 업그레이드 하셔는지요 ? 아니면 기존 php 버전을 업그레이드 하셔는지요? 현제상황으로봐서는 버전 업데이트로인한 해싱 암호화차이로 이전암호화를 반영이 않되는것로 판단이 됩니다. 다시확인해보시기 바랍니다.
야매박대목
8개월 전
답변 감사합니다.

그누보드나 php업데이트 확인해 보겠습니다.

댓글을 작성하려면 로그인이 필요합니다.

s
sinbi Expert
8개월 전

하드 공간 여유있는지 체크해 보세요.

코드 안 만졌는데 로그인 안 되는 경우면 십중팔구 이 문제일 듯 싶네요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 4개

야매박대목
8개월 전
여유공간은 충분했습니다...
신규아이디 생성하면 로긴 바로 됩니다.
s
sinbi
8개월 전
기존것만 바뀐거면, mysql 버전이 달라지진 않았는지 체크해 보세요.
mysql 버전에 따라 암호화처리 길이다 다릅니다.
야매박대목
8개월 전
<?php
include_once('./_common.php');

$mb_id = "admin"; // 변경하려는 사용자 ID
$new_password = "your_password"; // 새 비밀번호

// 그누보드에서 비밀번호는 get_encrypt_string 함수를 이용하여 암호화됩니다.
// 이 함수는 내부적으로 SHA256을 이용합니다.
$new_password_hashed = get_encrypt_string($new_password);

$sql = "UPDATE {$g5['member_table']}
SET mb_password = '".$new_password_hashed."'
WHERE mb_id = '".$mb_id."' ";

sql_query($sql);
?>

요런식으로 강제변경하면 잘 됩니다.
s
sinbi
8개월 전
위처럼 변경해서 잘 된 거면 위에 말씀드린 대로 mysql 버전이 달라져서 생긴 문제같네요.
이건 각 사용자들이 패스워드 찾기 이용해 새 패스워드 체계로 직접 바꿔야 할 겁니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인