그누보드 4.22.06에서 최소한의 보안 설정 방법 > 자유게시판

자유게시판

그누보드 4.22.06에서 최소한의 보안 설정 방법 정보

그누보드 4.22.06에서 최소한의 보안 설정 방법

본문

그누보드 4.22.06에서 최소한의 보안 설정 방법

1. bbs/move.php

$wr_id_list .= $comma . $_POST[chk_wr_id][$i];

을 다음으로 교체:

$wr_id_list .= $comma . "'" . $_POST[chk_wr_id][$i] . "'";

 

2. bbs/move_update.php

$sql = " select distinct wr_num from $write_table where wr_id in (" . stripslashes($wr_id_list) . ") order by wr_id ";

을 다음으로 교체:

$sql = " select distinct wr_num from $write_table where wr_id in ($wr_id_list) order by wr_id ";

3. bbs/search.php

$subject = $row[wr_subject];

를 다음으로 교체:

$subject = get_text($row[wr_subject]);


4. bbs/view.php

$signature = $mb[mb_signature];

를 다음으로 교체:

$signature = $mb[mb_signature];
$signature = bad_tag_convert($signature);

 

5. zib.db 교환 - 보안하고는 상관은 없습니다.

6. geditor/upload.php

1) 추가

if (!is_uploaded_file($file[tmp_name]))
    alert_only("첨부파일이 업로드되지 않았습니다.\\n\\n$file[error]");

다음 추가:

if (!preg_match("/\.(gif|png|jp[e]?g)$/i", $file[name])) 
    alert_only("PNG, GIF, JPG 형식의 이미지 파일만 업로드 가능합니다.");


 2) 교체

echo "<script language='javascript'>alert_only('$msg'); </script>";

를 다음으로 교체:

echo "<script language='javascript'>alert('$msg'); </script>";

7. lib/common.lib.php 

1) 교체

if ($board[bo_disable_tags])
{
    //$source[] = "/(\<)([\/]?)($board[bo_disable_tags])/i";
    // 태그에만 적용하던것을 속성(프로퍼티)에도 적용하도록 수정
    $source[] = "/([\<]?)([\/]?)($board[bo_disable_tags])/i";
    $target[] = "$1$2$3-x";
    //$source[] = "/^/";
    //$target[] = "<b>이 페이지는 사용금지 태그 사용으로 인하여 정상 출력되지 않을 수 있습니다.</b><p>";
}

를 다음으로 교체: (주석 처리하면 됩니다.)

/*
if ($board[bo_disable_tags])
{
    //$source[] = "/(\<)([\/]?)($board[bo_disable_tags])/i";
    // 태그에만 적용하던것을 속성(프로퍼티)에도 적용하도록 수정
    $source[] = "/([\<]?)([\/]?)($board[bo_disable_tags])/i";
    $target[] = "$1$2$3-x";
    //$source[] = "/^/";
    //$target[] = "<b>이 페이지는 사용금지 태그 사용으로 인하여 정상 출력되지 않을 수 있습니다.</b><p>";
}
*/


  2) 추가

$content = preg_replace($source, $target, $content);

다음 추가:  

              $content = bad_tag_convert($content);       

        // XSS (Cross Site Script) 막기
        // 완벽한 XSS 방지는 없다.
        $content = preg_replace("/(on)(abort|blur|change|click|dblclick|dragdrop|error|focus|keydown|keypress|keyup|load|mousedown|mousemove|mouseout|mouseover|mouseup|move|reset|resize|select|submit|unload)/i", "$1<!-- XSS Filter -->$2", $content);
        $content = preg_replace("/(scr)(ipt)/i", "$1<!-- XSS Filter -->$2", $content);
        $content = preg_replace("/(expre)(ssion)/i", "$1<!-- XSS Filter -->$2", $content);
        /*
        $content = preg_replace("/\#/", "#", $content);
        $content = preg_replace("/\</", "<", $content);
        $content = preg_replace("/\>/", ">", $content);
        $content = preg_replace("/\(/", "(", $content);
        $content = preg_replace("/\)/", ")", $content);
        */

3) 다음 함수 추가(파일의 끝 부분 정도에 하면 됩니다.)
다음 추가

// 악성태그 변환
function bad_tag_convert($code)
{
    return preg_replace("/\<([\/]?)(script|iframe)([^\>]*)\>/i", "<$1$2$3>", $code);
}

 8. common.php

                $_COOKIE[$k] = addslashes($v);
            }
        }
        @reset($_COOKIE);
    }
}

다음 추가:

unset($_GET['g4_path']);
unset($_POST['g4_path']);
추천
6

댓글 7개

전체 196,518 |RSS
자유게시판 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT