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

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

타버린나무 1년 전 조회 21,307

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

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

 

코드는 index.php에서

</p>

<p><?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개

채택된 답변
+20 포인트
1년 전

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

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

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

 

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

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

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

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

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

 

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

 

 

 

 

 

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

답변에 대한 댓글 1개

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

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

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

1년 전

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

</p>

<p><?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 {</p>

<p>    $mb = get_member('admin');</p>

<p>

    // 회원아이디 세션 생성

    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']));</p>

<p> </p>

<p>    // 회원의 토큰키를 세션에 저장한다. /common.php 에서 해당 회원의 토큰값을 검사한다.

    if(function_exists('update_auth_session_token')) update_auth_session_token($mb['mb_datetime']);

}</p>

<p>

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

답변에 대한 댓글 1개

타버린나무
1년 전
마찮가지로 관리자페이지엔 접근을 할 수 없네요.
답변 감사합니다.

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

1년 전

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

 

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');     } } ?>  

 

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

 

 

 

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');     } }

 

 

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

답변에 대한 댓글 1개

타버린나무
1년 전
답변감사합니다.

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

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

로그인