자료업로드시 php. php3. jsp. 등 첨부되지 않게 설정 하려면 어디를 수정해야 하나요? 정보
자료업로드시 php. php3. jsp. 등 첨부되지 않게 설정 하려면 어디를 수정해야 하나요?본문
bbs/gbupdate.php 파일중
....
// 업로드 가능하다면
if (is_uploaded_file($tmp_file) && $filename) {
// 수정이면서 기존의 자료가 있다면 삭제
if ($w =="u" && $wr["wr_file$i"]) {
@unlink("./data/file/$bo_table/".$wr["wr_file$i"]);
}
if (is_uploaded_file($tmp_file) && $filename) {
// 수정이면서 기존의 자료가 있다면 삭제
if ($w =="u" && $wr["wr_file$i"]) {
@unlink("./data/file/$bo_table/".$wr["wr_file$i"]);
}
// 설정한 업로드 사이즈보다 크다면 건너뜀
if ($filesize > $board[bo_upload_size]) {
continue;
}
if ($filesize > $board[bo_upload_size]) {
continue;
}
$prefix = substr(md5(uniqid(time())),0,8) . "_"; // 접두어
// 프로그램 원래 파일명
$upload_source[$i] = $filename;
$upload_source[$i] = $filename;
// php_x 와 같은 방법으로 스크립트 실행을 하지 못하게 하였으나 abc.php._x 는 실행되는 버그가 있음
$filename = preg_replace($source, $target, $filename);
// 접두사를 붙인 파일명
$ext=strstr($filename,"."); //추가되는 부분
$filename = !ereg_replace("[a-zA-Z0-9]","", $filename); //추가되는 부분
$upload[$i] = $prefix . $filename . $ext; //수정되는 부분
$dest_file = "./data/file/$bo_table/$upload[$i]";
$filename = preg_replace($source, $target, $filename);
// 접두사를 붙인 파일명
$ext=strstr($filename,"."); //추가되는 부분
$filename = !ereg_replace("[a-zA-Z0-9]","", $filename); //추가되는 부분
$upload[$i] = $prefix . $filename . $ext; //수정되는 부분
$dest_file = "./data/file/$bo_table/$upload[$i]";
@mkdir("./data/file/$bo_table", 0707);
@chmod("./data/file/$bo_table", 0707);
move_uploaded_file($tmp_file, $dest_file) or die($_POST["wr_file$i"][error]);
chmod($dest_file, 0606);
@chmod("./data/file/$bo_table", 0707);
move_uploaded_file($tmp_file, $dest_file) or die($_POST["wr_file$i"][error]);
chmod($dest_file, 0606);
$is_up[$i] = true;
}
}
}
}
....
위 코드중 어떻게 처리해야 하는지?
아니면 php.ini에 서 설정하는 방법 이라도.. 게시판 쓰기시 보안감사 점검때문에 어느분이 글 올려셨는데 충분한 답변이 되지않아 부탁 드려요
http://www.sir.co.kr/bbs/tb.php/g4_qa/11246 주소에 문의한 내용이 있습니다.만..
댓글 전체
기본적으로 g3에서는 php/htm/cgi/펄 관련 확장자들은 치환합니다.
말씀하신 부분중 특정 확장자는 빠져 있습니다.
gbupdate.php 파일 원본기준 110번째 라인에 아래 코드를 수정해 주십시오.
수정전,
$source = array ("/\.php/i", "/\.htm/i", "/\.cgi/i", "/\.pl/i");
수정후,
$source = array ("/\.php/i", "/\.htm/i", "/\.html/i", "/\.cgi/i", "/\.pl/i", "/\php3/i", "/\.jsp/i", "/\.asp/i");
말씀하신 부분중 특정 확장자는 빠져 있습니다.
gbupdate.php 파일 원본기준 110번째 라인에 아래 코드를 수정해 주십시오.
수정전,
$source = array ("/\.php/i", "/\.htm/i", "/\.cgi/i", "/\.pl/i");
수정후,
$source = array ("/\.php/i", "/\.htm/i", "/\.html/i", "/\.cgi/i", "/\.pl/i", "/\php3/i", "/\.jsp/i", "/\.asp/i");
네 감사드립니다.