그누보드 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);
$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 형식의 이미지 파일만 업로드 가능합니다.");
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>";
}
{
//$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>";
}
*/
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);
*/
// 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);
}
function bad_tag_convert($code)
{
return preg_replace("/\<([\/]?)(script|iframe)([^\>]*)\>/i", "<$1$2$3>", $code);
}
8. common.php
$_COOKIE[$k] = addslashes($v);
}
}
@reset($_COOKIE);
}
}
}
}
@reset($_COOKIE);
}
}
다음 추가:
unset($_GET['g4_path']);
unset($_POST['g4_path']);
unset($_POST['g4_path']);
추천
6
6
댓글 7개
선추천 후감상
감사합니다~~~
멋져요^^
스크랩해놨다가 나중에..
적용해야 겠습니다 ㅋㅋ
멋져요^^
스크랩해놨다가 나중에..
적용해야 겠습니다 ㅋㅋ
적용할것
4.22.06 패치
보안 설정
감사합니다.
2008.10.22일 적용