아이콘 업로드 하는 로직이요......

불당님팩쓰고있는데
아래코드가 원 코드인지 수정한건지는 모릅니다.......

gif 또는 jpg 다 받고
또 용량보다 작은지 검사한 후에

디렉토리만들고 파일올립니다.

근데 이해가 안되는것이, 
그 후에 악성코드방지랍시고
다시 gif아니면 다 지우거나.....................
용량보다 크면 다 지웁니다......................

첨부터 안받으면 되지 굳이 왜그럴까요???

========================================


    //if (preg_match("/(\.gif)$/i", $_FILES[mb_icon][name]))
    if (preg_match("/\.(jp[e]?g|gif|png|bmp)$/i", $_FILES[mb_icon][name]))
    {
        // 아이콘 용량이 설정값보다 이하만 업로드 가능
        if ($_FILES[mb_icon][size] <= $config[cf_member_icon_size])
        {
            @mkdir($mb_dir, 0707);
            @chmod($mb_dir, 0707);
            $dest_path = "$mb_dir/$mb_id.gif";
            move_uploaded_file($_FILES[mb_icon][tmp_name], $dest_path);
            chmod($dest_path, 0606);
            if (file_exists($dest_path))
            {
                //=================================================================\
                // 090714
                // gif 파일에 악성코드를 심어 업로드 하는 경우를 방지
                // 에러메세지는 출력하지 않는다.
                //-----------------------------------------------------------------
                $size = getimagesize($dest_path);
                if ($size[2] != 1) // gif 파일이 아니면 올라간 이미지를 삭제한다.
                    @unlink($dest_path);
                else
                 // 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
                 if ($size[0] > $config[cf_member_icon_width] || $size[1] > $config[cf_member_icon_height])
                     @unlink($dest_path);
                //=================================================================\
            }
        } else
        {
            $msg .= "{$_FILES[mb_icon][name]} 파일의 용량이 " . number_format($config[cf_member_icon_size]/1000) . "k 바이트보다 크므로 업로드 할 수 없습니다.\\n";
        }
    }
|

댓글 3개

파일을 받아 봐야 gif인지 png인지 악성코드인지 알 수 있죠.
아.. 확장자를 .gif로해도 getimagesize 에서 gif가 아니면 걸린다 말이네요...
모든 파일을 다 받고싶으면
if ($size[2] != 1) 이부분을
if ($size[2] != 1 && $size[2] !=21 && $size[2] != 3 && $size[2] != 4 )

이렇게 바꾸면 될까요??
예, 대신
숫자보다는 다음을 참고하시어 상수를 쓰세요.
http://kr2.php.net/manual/en/function.image-type-to-mime-type.php
댓글을 작성하시려면 로그인이 필요합니다.

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기 기존 게시물은 열람만 가능합니다.

+
제목 글쓴이 날짜 조회
16년 전 조회 904
16년 전 조회 1,463
16년 전 조회 1,021
16년 전 조회 1,553
16년 전 조회 2,531
16년 전 조회 1,012
16년 전 조회 836
16년 전 조회 824
16년 전 조회 805
16년 전 조회 1,000
16년 전 조회 2,604
16년 전 조회 1,495
16년 전 조회 1,728
16년 전 조회 1,043
16년 전 조회 870
16년 전 조회 821
16년 전 조회 1,127
16년 전 조회 1,440
16년 전 조회 1,479
16년 전 조회 1,095