Warning: Undefined array key "mobile_dir" in /home/kagla/new-sir/old/common.php on line 315
로그인? 이후 관리자 페이지 접속 에러 문의

로그인? 이후 관리자 페이지 접속 에러 문의

로그인? 이후 관리자 페이지 접속 에러 문의

QA

로그인? 이후 관리자 페이지 접속 에러 문의

답변 3

본문

사정상 '홈피주소/?root=admin' 이라고 접속하면 최고관리자 admin이라는 id로 접속을 하게 하려고 해봤는데요.

로그인은 됐지만 '관리자 페이지'에 들어가려면 '정상적으로 로그인하여 접근하시기 바랍니다.'라는 메세지가 뜨네요

 

코드는 index.php에서


<?php
if (!defined('_GNUBOARD_')) exit;
include_once('./_common.php');
if( isset($_GET['root']) ) set_session('root', $_GET['root']);
if( $_GET['root'] != 'admin' ) {
    // 로그인 확인
    if(!$member['mb_id']) {alert("로그인이 필요한 서비스입니다.", G5_BBS_URL.'/login.php');}
} else {
    // 회원아이디 세션 생성
    set_session('ss_mb_id','admin');
    // FLASH XSS 공격에 대응하기 위하여 회원의 고유키를 생성해 놓는다. 관리자에서 검사함 - 110106
    set_session('ss_mb_key', md5($mb['mb_datetime'] . get_real_client_ip() . $_SERVER['HTTP_USER_AGENT']));
}

 

방법좀 부탁드리겠습니다.

이 질문에 댓글 쓰기 :

답변 3

$mb['mb_datetime'] <== 이 값이 어디에도 없잖아요. 그러니 안되죠

// 회원아이디 세션 생성 <==다음에 넣으세요

$mb=get_member('admin', 'mb_datetime');

 

그런데 저런 처리가 무슨 의미가 있나요?

아무나 ?root=admin 으로 접속해버리면 관리자가 되어버리는데

전 세계 로봇이나 이상한 프로그램을 돌려서 홈페이지에 로그인 하기 위하여 

무작위로 아이디를 넣어서 접속해오는 로그를 못 보셨나보네요 

저런 것은 홈페이지 금방 사달 납니다

 

최소한 IP를 체크해서 지정한 IP만 관리자로 로그인 되는 조치가 필요합니다

 

 

 

 

 

균이님 말씀 맞습니다.
지금은 이런저런 상황에 맞는 로그인 페이지를 만들다가
관리자페이지를 접근해야 할 필요가 있는데  이것때문에 로그인 페이지를 따로 두기 뭣해서 이런 생각을 했던거에요.

균이님 답변대로 하니 잘 동작합니다. 감사합니다.

아래의 코드들을 참고를 해보세요..

 

<?php
if (!defined('_GNUBOARD_')) exit;
include_once('./_common.php');

if (isset($_GET['root']) && $_GET['root'] === 'admin') {
    $admin_id = 'admin';
    
    // 최고관리자 계정 정보를 가져옵니다
    $sql = "SELECT * FROM {$g5['member_table']} WHERE mb_id = '{$admin_id}'";
    $admin = sql_fetch($sql);

    if ($admin) {
        // 회원아이디 세션 생성
        set_session('ss_mb_id', $admin['mb_id']);
        // FLASH XSS 공격에 대응하기 위하여 회원의 고유키를 생성해 놓는다. 관리자에서 검사함 - 110106
        set_session('ss_mb_key', md5($admin['mb_datetime'] . get_real_client_ip() . $_SERVER['HTTP_USER_AGENT']));
        
        // 관리자 페이지로 리다이렉트
        header('Location: ' . G5_ADMIN_URL);
        exit;
    } else {
        alert("관리자 계정이 존재하지 않습니다.");
    }
} else {
    // 로그인 확인
    if (!$member['mb_id']) {
        alert("로그인이 필요한 서비스입니다.", G5_BBS_URL.'/login.php');
    }
}
?>
 

 

#######################################################

 

 

 

<?php
if (!defined('_GNUBOARD_')) exit;
include_once('./_common.php');

if(isset($_GET['root']) && $_GET['root'] == 'admin') {
    $mb = get_member('admin');
    if ($mb) {
        // 회원아이디 세션 생성
        set_session('ss_mb_id', $mb['mb_id']);
        
        // 회원인증 세션 생성
        set_session('ss_mb_key', md5($mb['mb_datetime'] . get_real_client_ip() . $_SERVER['HTTP_USER_AGENT']));
        
        // 추가 세션 정보 설정
        set_session('ss_mb_name', $mb['mb_name']);
        set_session('ss_mb_nick', $mb['mb_nick']);
        set_session('ss_mb_level', $mb['mb_level']);
        set_session('ss_mb_point', $mb['mb_point']);
        
        // 자동로그인 쿠키 설정
        $key = md5($_SERVER['SERVER_ADDR'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT'] . $mb['mb_password']);
        set_cookie('ck_mb_id', $mb['mb_id'], 86400 * 31);
        set_cookie('ck_auto', $key, 86400 * 31);
    }
} else {
    // 로그인 확인
    if(!$member['mb_id']) {
        alert("로그인이 필요한 서비스입니다.", G5_BBS_URL.'/login.php');
    }
}

 

 

다음 코드가 도움이 될지 모르겠습니다.


<?php
if (!defined('_GNUBOARD_')) exit;
include_once('./_common.php');
if( isset($_GET['root']) ) set_session('root', $_GET['root']);
if( $_GET['root'] != 'admin' ) {
    // 로그인 확인
    if(!$member['mb_id']) {alert("로그인이 필요한 서비스입니다.", G5_BBS_URL.'/login.php');}
} else {
    $mb = get_member('admin');

    // 회원아이디 세션 생성
    set_session('ss_mb_id','admin');
    // FLASH XSS 공격에 대응하기 위하여 회원의 고유키를 생성해 놓는다. 관리자에서 검사함 - 110106
    set_session('ss_mb_key', md5($mb['mb_datetime'] . get_real_client_ip() . $_SERVER['HTTP_USER_AGENT']));
 
    // 회원의 토큰키를 세션에 저장한다. /common.php 에서 해당 회원의 토큰값을 검사한다.
    if(function_exists('update_auth_session_token')) update_auth_session_token($mb['mb_datetime']);
}
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 129,406
© SIRSOFT
현재 페이지 제일 처음으로