토큰 정보가 올바르지 않습니다. 오류해결을 찾습니다. 그누보드기반의 아보카도 에디션 사용중입니다.

토큰 정보가 올바르지 않습니다. 오류해결을 찾습니다. 그누보드기반의 아보카도 에디션 사용중입니다.

QA

토큰 정보가 올바르지 않습니다. 오류해결을 찾습니다. 그누보드기반의 아보카도 에디션 사용중입니다.

답변 3

본문

3551527689_1614942204.8512.png

 

그누보드기반의 아보카도 에디션을 사용 중인데,

호스팅 서버 A에서 B로 이전을 하고 자료도 다 옮긴 상황인데 ...

A는 php5.2 (무료호스팅) / B는 php5.6 (유료호스팅) 환경입니다.

 

서버 버젼의 문제인가 싶어서 아보카도 에디션을 업그레이드 패치 해봤으나 여전히 토큰 정보가 올바르지 않다고 뜨고 ... ...

 

다른 이용자에게 물어보니 php 7버젼쪽에서도 아보카도 에디션이 잘 돌아간다고 하더라구요.

 

그래서 버젼의 문제는 아닌건가 싶은데 T.T ...

 

1. 쿠키 삭제 해봤습니다.

2. 아보카도 에디션 업데이트 패치 해봤습니다.

3. config.php 파일을 열어서

define('C5_COMAIN', '(주소');

define('C5_HTTPS_DOMAIN', '(주소');

해봤습니다. ( https://m.blog.naver.com/PostView.nhn?blogId=natkdals&logNo=221650912669&proxyReferer=https:%2F%2Fwww.google.com%2F 이 블로그 참고)

( 주소입력하는부분에 http:까지 전부 넣으면 여전히 토큰오류가 나고

http://를 빼고 .(주소).com같은 식으로 적용하면 토큰 정보 오류는 뜨지 않는 대신 홈페이지 자체가 오류 걸리고 올바른 방법으로 이용해 주십시오. 라는 오류가 뜨더라구요... )

3551527689_1614943847.6124.png

 

4. 토큰 에러 사례와 해결 방법 (https://sir.kr/faq/97) 은 ... 제가 이쪽분야에 완전 쌩초보에다 괜히 개인홈을 만들고 싶은 욕심이 생겨서 어찌저찌했던거라 자바스크립트 에러가 뭔지도 이해를 못해 봐도 어떻게 해야할지 모르겠더라구요 T.T

3551527689_1614944385.558.png

일단 개발자도구(F12)를 켠뒤에 관리자 게시글?쪽에 링크 수정을 해서 토큰오류가 뜨는걸 확인했을때

딱히 에러가 뜨는 모습은 발견이 안되는거 같아요. 제가 에러를 찾는 방법을 몰라서 그런걸수도 있겠지만...

( div style은 화살표가 움직일때 하트가 나오는 값들인것 같습니다! 마우스를 가져다대니 하트가잡히더라구요 ... )

 

5. adm/admin.lib.php 파일이 문제? 라고 해결방법을 올려준 글도 봤는데 제것이랑은 소스가 달라서 함부로 건들지를 못하겠네요...

 

아래가 소스파일 일부입니다

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
// 불법접근을 막도록 토큰을 생성하면서 토큰값을 리턴
function get_admin_token()
{
    $token = md5(uniqid(rand(), true));
    set_session('ss_admin_token', $token);

    return $token;
}


// POST로 넘어온 토큰과 세션에 저장된 토큰 비교
function check_admin_token()
{
    $token = get_session('ss_admin_token');
    set_session('ss_admin_token', '');

    if(!$token || !$_REQUEST['token'] || $token != $_REQUEST['token'])
        alert('올바른 방법으로 이용해 주십시오.', G5_URL);

    return true;
}

// 관리자 페이지 referer 체크
function admin_referer_check($return=false)
{
    $referer = trim($_SERVER['HTTP_REFERER']);
    if(!$referer) {
        $msg = '정보가 올바르지 않습니다.';

        if($return)
            return $msg;
        else
            alert($msg, G5_URL);
    }

    $p = @parse_url($referer);
    $host = preg_replace('/:[0-9]+$/', '', $_SERVER['HTTP_HOST']);

    if($host != $p['host']) {
        $msg = '올바른 방법으로 이용해 주십시오.';

        if($return)
            return $msg;
        else
            alert($msg, G5_URL);
    }

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

 

 

일단 계속 오류해결을 찾아다녀보겠지만 T.T 혹시라도 도움을 구할 수 있을까 싶어 글을 남깁니다...

감사합니다...

 

+6. bbs/delete.php 파일의

/*if ($is_admin)
{
    if (!($token && get_session("ss_delete_token") == $token))
        alert("토큰 에러로 삭제 불가합니다.");
}*/
부분 주석처리, 삭제 해도 안됨.

 

 

이 질문에 댓글 쓰기 :

답변 3

보안인증서를 적용한 상태인가요?

도메인에 https:// 이렇게 가 된건가요? http:// 이거면 보안인증서 안한거구요
이거에 따라서 토큰 정보가 올바르지 않습니다 에러 나올수있고 아니면 다른 이유도 있고 여러가지로 봐야되요

아.. 저도 겪어봐서 이제야 답변을 또 달아요
일단 첫번째가 ajax.token.php 가 있는지 확인해야되구요 만약에 이게 다른 폴더에서 작업을 했으면 bbs에서 없다면 이걸 카피해서 해당 위치에 넣어야되구요
두번째가 write.php 에 위치하는 세션이 있어요 ss_bo_table, ss_wr_id 가 있는지 확인해야되요
이건 수정페이지에서 자주 걸리더라구요
마지막으로는 input submit 이게 버튼이 좀 문제 될수있고 (아닐수도있는데 가끔가다 이문제도..)
어쨌든 토큰 문제 같은경우 토큰을 지우지 않는게 좋아요 이게 외부일 경우 토큰이 있는게 보안에 좋죠
만약에 어드민단에서 쓰인다면 토큰이 없어도 되지만.. (있는게 좋아요..)

어떤 상황인지 확인방법 ::: 쓰기 페이지에서

1. 소스보기해서 위쪽 20행쯤에 나오는 g5_bbs_url = <---이 값이 사용하는 도메인으로 맞게 나오는지 확인

 

2. <script>alert( get_write_token("<?php echo $bo_table?>");</script> <---경고창에 값이 나오는지 확인

 

3. <?php echo get_write_token($bo_table);?> <--값이 제대로 나오는지 확인

 

4. 위 상황을 보고 다시 질문

1.
//자바스크립트에서 사용하는 전역변수 선언
var g5_url          = "http://avocado.ivyro.net/avo";
var g5_bbs_url    = "http://avocado.ivyro.net/avo/bbs";
이렇게 뜨는걸로 봐선 도메인은 맞는것 같아요.

2. , 3. 같은 경우에는
https://imgur.com/HaFThkd (링크를 누르시면 이미지가 뜹니다!)

Uncaught SyntaxError: Unexpected token '<'
라는 오류가 뜹니다!
입력을 잘못했나 싶어서 < 이걸 여기저기에 붙여봤는데 계속 저 오류로 뜨더라구요...

2. <script>alert( get_write_token("<?php echo $bo_table?>") );</script> 이걸 입력했을때도
 Uncaught SyntaxError: Unexpected token '<'  뭐가 빠졌다는 에러가 뜨네요

3. 제가 사용하고 있는게 그누보드 기반으로 만들어진 아보카도 에디션이라고 하던데 약간은 다른 프로그램인가 싶네요...

php 5.2 서버환경에서는 잘만 사용이 되었는데 ... 서버이전을 하면 이런 오류가 종종생긴다는 검색결과가 나오더라구요 ㅠㅠ
서버환경이 현재 php 5.6인데 다시 5.2로 서버이전을 하면 해결이 될까요?

코드?쪽은 이것저것만져도 해결이 안되는걸 보니 서버의 문제가 맞는걸까 싶어서요...

코딩에 대해서 전혀 모르는 생초짜라 말씀하시는 부분들을 하나도 모르겠습니다.
코드쪽은 홈페이지 만들때 건드린적이 없어요, 전부 배포받은 것들이라!
그냥 설치하고 그러기만했습니다 ㅠㅠ 혹시나 싶어 말씀드려요! 코딩을 조금이라도 알고있지 않아서 ㅠㅠ 죄송합니다.

2. F12를 눌러서 나오는 console에 입력해봤습니다 이쪽을 말하시는건줄 알고 ... 3번코드도 마찬가지로 여기다 입력을 했는데 이게 아닌가보네요 ㅠㅠ

어느 파일을 열어서 입력 하는 건지 알 수 있을까요...?

처음부터 php를 전혀 모르는 상황 이라고 질문을 했으면 다르게 답변을 했을 터인데..

첨부 이미지를 보니 관리자 페이지 같군요

화일명은 menu_list.php 인가요?

화일을 열어서 php가 끝난 부분 ?> <---이것 다음에 넣으세요

 

<?php echo  "1 함수호출 ==>".get_admin_token();

echo "<br>";

echo "2 직접 생성 ==>".md5(uniqid(rand(), true));

?>

<script>alert( get_ajax_token() );</script>

 

각각 무엇이 나오는지 보세요

 

 

 

 

 

소스보기를 해서

1 함수호출 ,2 직접 생성 <--여기에 뭐가 나왔는지 보고 알려주어야 상황을 파악하죠 에구

 

자바스크립트 경고창으로 보아

g5_admin_url 이 잘못 된 것 같은데 소스보기해서 상단 부분에서 g5_admin_url이 맞는지 확인하세요

이게 맞는건진 모르겠지만 ㅠㅠ...

menu_list.php 에 저거 넣고
홈페이지쪽으로 가서 메세지뜨는거 확인하고
홈페이지 소스보기? 로 들어가서 마지막 줄에 살펴보니

1 함수호출 ==>4faf07e02611374bdf640d195d33a617<br>2 직접 생성 ==>dac68721e05248304468ceb38b748bf2<script>alert( get_ajax_token() );</script>

라고 뜨긴 했습니다. 제대로 한건지는 모르겠네요...



g5_admin_url는
var g5_admin_url = "http://avocado.ivyro.net/avo/adm";
라고 적혀있습니다.

http://avocado.ivyro.net/avo/adm/menu_list.php 에서
소스보기했는데 약간 주소가 다른거 같긴하네요?? 이게 잘못된걸까요...

1 함수호출 ,2 직접 생성은 값이 잘 나오고 잇으니 ajax가 실행 안되는 것입니다
자바스크립트 에러가 있거나 g5_admin_url 주소가 잘못되었거나 라고 추측 할 수 있습니다

/adm/admin.js 84행쯤 function get_ajax_token() 찾아서 수정
url: g5_admin_url+"/ajax.token.php", --> url: "./ajax.token.php",

그래도 안되면 menu_list.php에서
 <input type="hidden" name="token" value=""> 수정 -->
 <input type="hidden" name="token" value="<?php echo get_admin_token();?>">

두번째 방법은 이렇게 고치더라도 token을 사용하는 다른 페이지에서 또 안될 것이니
ajax가 안되는 이유를 찾아야 하는데 사이트에서 테스트 해보지않고는 더 이상 원인을 알기 어렵습니다

알려주신대로 수정을해도 토큰정보가올바르지 않다고 여전히 수정이 안되네요.

그래도 많이 도와주셔서 감사합니다 ㅠㅠㅠㅠ 일단 서버이전도 한번해보고 ... 정안되면 초기화를 시켜봐야겠어요. 어떻게 해결이 된다면 다시 말씀드리러 오겠습니다!! 감사합니다!!!

ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ균이님
호스팅받은곳에서 PHP 5.2로 서버이전을하니까 바로 문제가 해결이 됐습니다
호환의 문제였나봐요.......

ㅠㅠㅠㅠㅠㅠ주말동안 찾아내서 고쳐보려고 했는데 너무 ... 놀랍네요 이런문제였을줄은 ㅠㅠㅠㅠ

아무튼, 포기하지않고 알려주려 하셔서 너무너무 감사드려요!!! 좋은하루되세요!!!

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