[보안패치] 그누보드 4.22.06 > 그누4 다운로드

그누4 다운로드

여러분께서 보고 계시는 이 사이트는 그누보드4 최신버전으로 제작, 운영되고 있습니다.
SIR은 그누보드를 만들 뿐 프로그램의 설치, 운영방법, 설정문제에 관한 도움을 드리지는 않습니다.

[보안패치] 그누보드 4.22.06 정보

[보안패치] 그누보드 4.22.06

첨부파일

gnuboard4.tgz (1.3M) 3175회 다운로드 2008-09-08 23:31:26
gnuboard4.utf8.tgz (1.3M) 822회 다운로드 2008-09-08 23:31:26

본문

4.22.06 (08.09.07)
    :  geditor에서 이미지 업로드시 이미지 확장자만 업로드 가능하도록 수정

        geditor/upload.php



geditor 에서 php, html 등의 확장자 업로드가 가능한 것을 이미지 확장자 gif, png, jpg, jpeg 만 가능하도록 수정하였습니다.

data/geditor 디렉토리로 이동하여 이미 업로드 된 php 파일이 있는지 확인하여 주십시오.

find . -name '*.php'

or

find . -name '*.htm'

있다면 모두 삭제하여 주시기 바랍니다.


업로드 된 파일이 있다고 하더라도 geditor 에서 파일명을 변조하여 업로드 하므로 큰 피해는 없으리라 예상됩니다.
  • 복사

댓글 전체

해당파일
geditor/upload.php

덮어 쓰니 이미지 업로드가 안되네요. 어디 다른부분에도 패치가 된 사항이 있나요?

### 수정된내용이
alert_only 함수 명을 alert로 변경하고

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

추가한사항말구 다른 부분이 존재 하나요..
###

왜안되지.ㅠ,.ㅠ
파일이 잘못 업데이트 되었습니다. 죄송합니다.

다운로드 파일은 새로운 파일로 업데이트 해 놓았습니다.

이미 업데이트 하신 분들은

geditor/upload.php 를 아래와 같은 코드로 대체하여 주십시오.









<?
include_once("./_common.php");

// --
// 첨부 이미지 저장 디렉토리
// --

$path = "$g4[path]/data/$g4[geditor]";

// --

make_dir($path);

$obj  = $_POST[obj];
$token = $_POST[token];
$work  = $_POST[work];

if (!$token) exit;

if (!$obj)
    alert_only('오브젝트 변수가 없습니다.');

if ($work == 'delete') {
    delete_image($token, $path.'/'.date('ym'));
    exit;
}

$file = $_FILES[image];
$size = getImageSize($file[tmp_name]);
$mime = array('image/png', 'image/jpeg', 'image/gif');

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 형식의 이미지 파일만 업로드 가능합니다.");

if (!in_array($size['mime'], $mime))
    alert_only("PNG, GIF, JPG 형식의 이미지 파일만 업로드 가능합니다..");

if (!is_dir($path))
    alert_only("$path 디렉토리가 존재하지 않습니다.");

if (!is_writable($path))
    alert_only("$path 디렉토리의 퍼미션을 707로 변경해주세요.");

add_index($path);

$path .= '/'.date('ym');
make_dir($path);

delete_image($token, $path);

$dest_file = $path.'/'.abs(ip2long($_SERVER[REMOTE_ADDR])).'_'.substr(md5(uniqid($g4[server_time])),0,8).'_'.str_replace('%', '', urlencode($file[name]));
$count = 0;

while (file_exists($dest_file))
    $dest_file = $path.'/['.$count++.']'.$file[name];

move_uploaded_file($file[tmp_name], $dest_file);

chmod($dest_file, 0606);

$file = dirname($HTTP_SERVER_VARS["PHP_SELF"]).'/'.$dest_file;

setCookie('ge_token', $token);
setCookie('ge_file', $dest_file);

function add_index($path) {
    $indexfile = $path."/index.php";
    $f = @fopen($indexfile, "w");
    @fwrite($f, "");
    @fclose($f);
    @chmod($indexfile, 0606);
}

function delete_image($token, $path) {
    global $_COOKIE;
    if ($token==$_COOKIE[ge_token]) {
        if (substr($_COOKIE[ge_file], 0, strlen($path))==$path) {
            if (file_exists($_COOKIE[ge_file])) {
                @unlink($_COOKIE[ge_file]);
            }
        }
    }
}

function alert_only($msg='', $url='') {
    echo "<script language='javascript'>alert('$msg'); </script>";
    exit;
}

function make_dir($path)
{
    if (!is_dir($path))
    {
        @mkdir($path, 0707);
        @chmod($path, 0707);

        if (!is_dir($path))
            alert_only('디렉토리 생성에 실패하였습니다.');

        add_index($path);
    }
}

?>
<script language="javascript">
parent.<?=$obj?>.insert_image_preview("<?=$file?>");
</script>
업데이트 해주시는게 당연한게 아니라 관리자님의 배려해주시는건데 너무 감사드리죠. 설사 잘못 파일을 올린다 할지라도 감사할 다름입니다. ^^* 항상 감사드립니다.
기본스킨에 자동 등록 방지 팁이 이미지가 아닌거 같은데요..새로운 버젼에 빠진거 같기도 하고요..ㄱ이곳에서 열심히 공부하고 있습니다. 늘  감사 드려요~~
패치에 첨부이미지 삭제시 썸네일 이미지도 삭제하는 코드를 삽입해서 배포해주셨으면 합니다.
대부분의 이미지 스킨에서 섬네일은 thumb ,  최근게시물은 latest_thumb  이렇게 생성하고 있습니다.
따라서 아래의 내용을 패치에 추가시킨다면 향후 이용에 편리함이 커질것이라 생각됩니다.


관련링크 : http://www.sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=2296

현재 그누보드4는 게시글을 삭제하면 첨부파일은 삭제가 되는데 섬네일은 삭제가 안되더군요..

섬네일까지 깨끗하게 삭제하는 방법은 의외로 간단합니다..
보통 섬네일이 만들어지는것을 보면 문서아이디로 만들어지더군요..
그 디렉토리를 찾아가서 삭제하도록 만들어 봤습니다.

1. bbs/delete.php 파일의 75번줄 부근
            @unlink("$g4[path]/data/file/$bo_table/$row2[bf_file]"); // 검색후 바로 아래 추가 .......
            @unlink("$g4[path]/data/file/$bo_table/thumb/$write[wr_id]"); //썸네일 삭제
            @unlink("$g4[path]/data/file/$bo_table/latest_thumb/$write[wr_id]"); //최근게시물 썸네일 삭제


2. bbs/delete_all.php 파일의 92번줄 부근
                @unlink("$g4[path]/data/file/$bo_table/$row2[bf_file]"); // 검색후 바로 아래 추가 .......
                @unlink("$g4[path]/data/file/$bo_table/thumb/$write[wr_id]"); //썸네일 삭제
                @unlink("$g4[path]/data/file/$bo_table/latest_thumb/$write[wr_id]"); //최근게시물 썸네일 삭제

3. bbs/write_update.php 파일의 120줄 부근
        @unlink("$g4[path]/data/file/$bo_table/$row[bf_file]"); // 검색후 바로 아래 추가 .......
        @unlink("$g4[path]/data/file/$bo_table/thumb/$write[wr_id]"); //썸네일 삭제
        @unlink("$g4[path]/data/file/$bo_table/latest_thumb/$write[wr_id]"); //최근게시물 썸네일 삭제


4. bbs/write_update.php 파일의 158번줄 부근
            @unlink("$g4[path]/data/file/$bo_table/$row[bf_file]"); // 검색후 바로 아래 추가 .......
            @unlink("$g4[path]/data/file/$bo_table/thumb/$write[wr_id]"); //썸네일 삭제
            @unlink("$g4[path]/data/file/$bo_table/latest_thumb/$write[wr_id]"); //최근게시물 썸네일 삭제

위의 소스를 추가로 넣어주시면 게시글 삭제시 섬네일까지 깨끗하게 삭제가 됩니다...
첨부이미지 교체시에도 섬네일이 바로 교체 됩니다...


단, 섬네일 파일의 폴더명을 다르게 만든 스킨을 사용했을경우는 그에 맞게 위의 소스도
@unlink("$g4[path]/data/file/$bo_table/섬네일 폴더/$write[wr_id]"); //썸네일 삭제
@unlink("$g4[path]/data/file/$bo_table/최근게시물섬네일폴더/$write[wr_id]"); //최근게시물 썸네일 삭제
이런방식으로 변경해줘야 합니다.
utf8에서 글이 깨지는 버그가 있습니다. 다운그레이드 하니까 정상적으로 작동되네요.

-.-; 코드 이렇게 저렇게 만지다 보니까 되긴 했는데, 두번째로 해서는 안되네요; (기억이 안나요 죄송 ㅠ)

이전버젼으로 다운해서 사용중입니다. :)
© SIRSOFT
현재 페이지 제일 처음으로