비밀글 버그 고치기... > 그누3 팁자료실

그누3 팁자료실

비밀글 버그 고치기... 정보

그누호환 비밀글 버그 고치기...

본문

그누 3.27에서 비밀글 버그가 발견되 아래와 같이 소스를 올립니다.
문제가 있을수도 있으니 문제가 생긴다면 답글 달아주십시오.
버그내용은 이렇습니다.
손님이 작성한 비밀글을 다른사람도 볼수있다는것이 문제입니다...
gnuboard.php 에서 50라인부터 //그룹접근 가능 주석이전까지 아래의 소스로
교체를 하시면 됩니다.
그리고 테스트를 하신후 문제가 생기면 코멘트 달아주시기 바랍니다.
--------------------소스---------------------
    if ($write[wr_secret]) {
$readIn="$board_table|$write[wr_num]";
        if ($write[mb_id]){ // 글쓴이가 회원 ID가 있다면...
if ($write[mb_id] == $member[mb_id]){ // 글쓴이와 로그인 ID 가 똑같다면 통과...
}else if ($is_admin){ //관리자라면 통과
}else if ($member[mb_id]=="") { //글작성된 회원의 비밀번호를 아는데 로그인이 안되어있을경우...
alert("이 비밀글은 작성자의 아이디로 로그인해야 볼수 있습니다.\\n로그인없이 암호를 안다고해도 회원이 작성한 비밀글은 열어볼수가 없습니다.^^;");
}else { //이것도 아니고 저것도 아니면 비밀글 암호묻기...
            gotourl("./?doc=bbs/gnupasswd.php&w=s&wr_id=$wr_id&$qstr&msg=이 글은 비밀글입니다.");
            exit;
}
}else if ($write[mb_id]==""){ // 글쓴이가 ID가 없다면...
if (($readIn != $_SESSION["ss_secret"]) && !$is_admin) {
            gotourl("./?doc=bbs/gnupasswd.php&w=s&wr_id=$wr_id&$qstr&msg=이 글은 비밀글입니다.");
            exit;
}
}

        session_register("ss_secret");
        $ss_secret = $_SESSION["ss_secret"] = $readIn;
    }
---------------------------끝---------------------------------------------
추천
0
  • 복사

댓글 전체

zzzz님처럼 소스복사쉽게하기위해 run을 doc 로 바꿔놓았습니다. ㅡㅡ;
제가 그누를 수정을 해서 지금 홈을 만들고있어서 저런 상태로 그대로 올려져버렸네요;;
최신버전인 사람들은
gotourl("./?run=bbs/gnupasswd.php&w=s&wr_id=$wr_id&$qstr&msg=이 글은 비밀글입니다.");
여기에서 ?run 이것을 ?doc 로
gnupasswd 를 gbpasswd 로 하시고,

구 버전인 사람들은
}else { //이것도 아니고 저것도 아니면 비밀글 암호묻기...
            gotourl("./?run=bbs/gnupasswd.php&w=s&wr_id=$wr_id&$qstr&msg=이 글은 비밀글입니다.");
            exit;
}
}else if ($write[mb_id]==""){ // 글쓴이가 ID가 없다면...
if (($readIn != $_SESSION["ss_secret"]) && !$is_admin) {
            gotourl("./?run=bbs/gnupasswd.php&w=s&wr_id=$wr_id&$qstr&msg=이 글은 비밀글입니다.");
            exit;
}

여기를 ... 밑에 것으로

}else { //이것도 아니고 저것도 아니면 비밀글 암호묻기...
            header("location:./?doc=$cfg[bbs_dir]/gbpasswd.php&w=s&wr_id=$wr_id&$qstr&msg=이 글은 비밀글입니다.");
            exit;
}
}else if ($write[mb_id]==""){ // 글쓴이가 ID가 없다면...
if (($readIn != $_SESSION["ss_secret"]) && !$is_admin) {
            header("location:./?doc=$cfg[bbs_dir]/gbpasswd.php&w=s&wr_id=$wr_id&$qstr&msg=이 글은 비밀글입니다.");
            exit;
}

로 하면 좋겠군요.
정말 좋은팁이군요. 수고많으셨습니다. 최장민님 !!
© SIRSOFT
현재 페이지 제일 처음으로