파일업로드 하는 곳의 보안문제좀 알려주세요 ^^ 정보
파일업로드 하는 곳의 보안문제좀 알려주세요 ^^본문
사이트에 요상한 업로드파일이 올라와서 말썽입니다 ㅠㅠ
업로드 하는 곳에 파일명검사(제한)를 하면 된다는 팁을 얻었는데요.
보통 어떤 파일만 올라가도록 하시는지 고수님들의 팁을 듣고싶습니다. 도와주세요 ㅠㅠ
업로드 하는 곳에 파일명검사(제한)를 하면 된다는 팁을 얻었는데요.
보통 어떤 파일만 올라가도록 하시는지 고수님들의 팁을 듣고싶습니다. 도와주세요 ㅠㅠ
추천
0
0
댓글 4개

#cat > .htaccess
php_admin_flag engine off
#chmod 404 .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");
}
}
구닥다리지만 잘 돌갑니다.
$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");
}
}
구닥다리지만 잘 돌갑니다.

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