테스트 사이트 - 개발 중인 베타 버전입니다

파일업로드 하는 곳의 보안문제좀 알려주세요 ^^

사이트에 요상한 업로드파일이 올라와서 말썽입니다 ㅠㅠ

업로드 하는 곳에 파일명검사(제한)를 하면 된다는 팁을 얻었는데요.

보통 어떤 파일만 올라가도록 하시는지 고수님들의 팁을 듣고싶습니다. 도와주세요 ㅠㅠ

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 4개

#cat > .htaccess
php_admin_flag engine off
#chmod 404 .htaccess
if($_FILES['upload_file']['name'][$i]){//if 1
$file=$_FILES['upload_file']['tmp_name'][$i];
$file_name=$_FILES['upload_file']['name'][$i];
$file_size=$_FILES['upload_file']['size'][$i];
$file_name_div=explode(".",$file_name);
$file_dot_check=$file_name_div[sizeof($file_name_div)-1];
if($file_size=="0") message("업로드".($i+1)."에 업로드하실 파일의 경로가 올바르지 않습니다.","-1");
if(preg_match("/.php$|.ph$|.php3$|.php4$|.jsp$|.asp$|.pl$|.js$|.html$|.htm$|.phtml$|.shtm$|.ztx$|.dot$|.cgi$|.inc$|.txt$|.exe$|.com$|.bat$/i", $_FILES['upload_file']['name'][$i]) || substr($_FILES['upload_file']['name'][$i],0,1)=='.'){
message("업로드가 불가능한 파일(확장자)입니다.\\n\\n파일을 압축하여 업로드를 하시기 바랍니다.","-1");
}
}

구닥다리지만 잘 돌갑니다.
우선 정책을 정하셔야 될 것 같은데요.
업로드시 어떤 파일들만 허락할 것인지 용도가 무엇인지
따라서 제한을 해야 될 것 같습니다.
이미지만 업로드하는 게시판이 있을 수도 있고 문서파일만 업로드 할 수 있을 수도 있고
그리고 업로드 제한을 서버단에서 할 수도 있고 클라이언트 자바스크립트에서도 제어할 수도 있습니다.
이점 유의해서 작업을 하시면 될 것 같네요.
좋은 말씀 갑사합니다 ^^

게시글 목록

번호 제목
21960
21957
25457
21956
25455
21954
21947
21940
21920
21918
851
21915
25447
13921
21912
21911
21905
21895
21885
21870
21864
21839
21834
13918
25433
846
843
21822
21817
21808
21800
25432
21777
25429
13912
21765
838
21763
833
819
25428
13908
21750
815
21728
25424
812
13906
29551
21686
25423
810
21661
13905
25422
29545
13904
13903
25420
21658
13902
21654
805
802
801
25415
25411
797
25410
795
13900
21624
25407
25406
25405
21592
780
25403
25402
25401
25400
25393
25392
25391
25389
21588
25385
775
25371
25352
771
25351
25350
25347
767
25346
21579
21570
760
757