Share Code Upload

elgoog

New Member
Chao cac ba,
Dien dan cua cac ban that la dep va thanh vien rat chat luong, to dao qua thay cac cau co cai scripts upload http://www.buithixuan.info/upload/, cai nay hay la no ko fake link qua SQL nen de dung, to muon hoi cac cau co the share hay cho biet nguon goc duoc khong ?. TO dang muon nghien cuu de phat trien len mot ti:D
Cam on.
Chao
 

boymc

Administrator
Mã:
<?php
//vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
// You may change maxsize, and allowable upload file types.
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//Mmaximum file size. You may increase or decrease.
$MAX_SIZE = 10000000;

//Allowable file ext. names. you may add more extension names.
$FILE_EXTS= array('.zip','.jpg','.png','.gif','.wma','.wmv','.avi','.mp3','.wav','.swf'); 

//Allow file delete? no, if only allow upload only
$DELETABLE= true; 


//vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
// Do not touch the below if you are not confident.
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/************************************************************
 * Setup variables
 ************************************************************/
$site_name = $_SERVER['HTTP_HOST'];
$url_dir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
$url_this ="http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];

$upload_dir = "files/";
$upload_url = $url_dir."/files/";
$message ="";

/************************************************************
 * Create Upload Directory
 ************************************************************/
if (!is_dir("files")) {
if (!mkdir($upload_dir))
die ("upload_files directory doesn't exist and creation failed");
if (!chmod($upload_dir,0755))
die ("change permission to 755 failed.");
}

/************************************************************
 * Process User's Request
 ************************************************************/
if ($_REQUEST[del] && $DELETABLE){
$resource = fopen("log.txt","a");
fwrite($resource,date("Ymd h:i:s")."DELETE - $_SERVER[REMOTE_ADDR]"."$_REQUEST[del]\n");
fclose($resource);

if (strpos($_REQUEST[del],"/.")>0);//possible hacking
else if (strpos($_REQUEST[del],$upload_dir) === false); //possible hacking
else if (substr($_REQUEST[del],0,6)==$upload_dir) {
unlink($_REQUEST[del]);
print "<script>window.location.href='$url_this?message=deleted successfully'</script>";
}
}
else if ($_FILES['userfile']) {
$resource = fopen("log.txt","a");
fwrite($resource,date("Ymd h:i:s")."UPLOAD - $_SERVER[REMOTE_ADDR]"
.$_FILES['userfile']['name']." "
.$_FILES['userfile']['type']."\n");
fclose($resource);

$file_type = $_FILES['userfile']['type']; 
$file_name = $_FILES['userfile']['name'];
$file_ext = strtolower(substr($file_name,strrpos($file_name,".")));

//File Size Check
if ( $_FILES['userfile']['size'] > $MAX_SIZE) 
 $message = "The file size is over 5MB.";
//File Extension Check
else if (!in_array($file_ext, $FILE_EXTS))
 $message = "Sorry, $file_name($file_type) is not allowed to be uploaded.";
else
 $message = do_upload($upload_dir, $upload_url);

print "<script>window.location.href='$url_this?message=$message'</script>";
}
else if (!$_FILES['userfile']);
else 
$message = "Invalid File Specified.";

/************************************************************
 * List Files
 ************************************************************/
$handle=opendir($upload_dir);
$filelist = "";
while ($file = readdir($handle)) {
 if(!is_dir($file) && !is_link($file)) {
$filelist .= "<a href='$upload_dir$file'>".$file."</a>";
if ($DELETABLE)
$filelist .= " <a href='?del=$upload_dir".urlencode($file)."' title='delete'></a>";
$filelist .= "<sub><small><small><font color=grey>".date("d-m H:i", filemtime($upload_dir.$file))
 ."</font></small></small></sub>";
$filelist .="<br>";
 }
}

function do_upload($upload_dir, $upload_url) {

$temp_name = $_FILES['userfile']['tmp_name'];
$file_name = $_FILES['userfile']['name']; 
$file_name = str_replace("\\","",$file_name);
$file_name = str_replace("'","",$file_name);
$file_path = $upload_dir.$file_name;

//File Name Check
if ( $file_name =="") { 
$message = "Không chấp nhận tên tập tin";
return $message;
}

$result=move_uploaded_file($temp_name, $file_path);
if (!chmod($file_path,0777))
 $message = "change permission to 777 failed.";
else
$message = ($result)?"$file_name uploaded. <br>File URL: <b>http://btx3.prophp.org/files/$file_name</b>" :
 "Somthing is wrong with uploading a file.";
return $message;
}

?>

<center>
 <font color=red><?=$_REQUEST[message]?></font>
 <br>Server Upload 3<br>
 <form name="upload" id="upload" ENCTYPE="multipart/form-data" method="post">
 Upload File <input type="file" id="userfile" name="userfile">
 <input type="submit" name="upload" value="Upload">
 </form>
 Các định dạng file cho phép : zip, jpg, png, gif, wma, wmv, avi, mp3, wav, swf
<br> Kích thước tối đa cho 1 file là : 10 MB <br>

<small><sup>Developed By 
 <a style="text-decoration:none" href="http://buithixuan.info/uoload/up.htm">Boymc</a>
 </sup></small>
</center>

Bạn save code này thành file *.php rồi chạy nha
Các lưu cho bạn
+ Để tránh bị trùng file khi tên file giống nhau thì bạn dùng thêm code md5(time) để rename tên file lại.
+ Tránh bị hack do lỗi của Apache thì bạn không nên cho upload file .rar tại file .php có thể núp dưới dạng 1 file .rar để đánh lừa code của bạn.
+ Nhớ tạo thư mục files đặt cùng ngang hàng với file này và Chmod 755 nếu server ko safemod và 777 với server safemod.
+ Các lưu ý khác thì mình đã ghi bằng Eng trong mỗi hàng code rồi để bạn lưu ý nó, bạn cứ viêc coi và edit tùy ý cho phù hợp với mục đích của bạn .
+ Code này mình cũng sưu tầm rùi edit , thêm thắt nên nếu có lòng thì để lại cái link wa forum BTXOnline , còn không thì thôi , không ai nói được bạn cả .
+ Lần sau post bài nhớ viết tiếng Việt nếu không muốn bị mod del trước khi mình đọc thấy .
 

elgoog

New Member
Trước hết xin cám ơn bạn đã share code, cái này giúp cho mình dễ hơn sau này nhiều :D

Việc không viết Tiếng Việt là tại vì ko cái cài bộ gõ, hi tớ thấy cái avim cực hay đó, cậu thử đi

http://aevn.fr/jscripts/avim.js khá ổn hỗ trợ cả FF và IE

Tớ cũng muốn đặt link tới rum cậu nhưng chưa hack cái mod afiliates nào, tiện thể cho tớ hỏi cái MOD "Liên kết bạn bè " phía dưới cùng là MOD hay chỉ là đoạn scripts cậu thêm vào skin
 

boymc

Administrator
thanks về cái file vni.js của bạn , mình đã cho sử dụng rồi và thấy rất okie.
còn cái bên dưới thì mình chỉ viết code HTML thông thường ;) .
IBF hình như có cái mod liên kết banner nhưng mình không dùng vì không cần thiết cho lắm .
Cám ơn lần nữa vì cái bộ gõ :D
 

elgoog

New Member
Bên cậu và tớ đều dùng IBP vì thế nhất định sẽ có nhiều trao đổi :D Tớ cũng tham gia làm nhiều diễn đàn và rất quan tâm vấn đề bảo mật. Nếu cậu quan taâ có thể trao đổi mà hình như cậu là mem bên InV
 

boymc

Administrator
~.~ ý cậu nói là InvisionViet áh ;)) bên đó không thân thiện cho lém, cái skin của BTX bị chê wá trời , lại còn thằng mod vào chửi dân BTX nữa ...
với lại bên đó tớ ít vào bằng bên ddth.com, congnghethongtinvn.com, vniss.net, HVA nữa mấy trang này thân thiện hơn nhiều. heeee.
cái forum IBF thật sự chẳng cần bảo mật nhiều lắm đâu, chạy mặc định và hack ít mod thôi, chơi những mod không ảnh hưởng nhiếu đến cấu trúc là an toàn rồi còn mấy cái chuyện move file admin.php hay .... là ko cần thiết, thêm cái security pass là xong. Cmod thì chỉ dùng mỗi thư mục upload cho các file của mem để wản lý cho dễ ... cập nhật thường xuyên bản fix bug, nếu site đàng hòang thì như vậy là đủ , chỉ có bọn amater mới khoái hack chứ mấy lão pro thì không hack làm gì, mang tiếng và phí thời gian.
Còn cái host thì chọn host nào security cao để an tâm phần host như của BTX nè, host security cao nhưng lại khó chịu phần code vì muốn làm gì thì chỉnh trong ACP không tác dụng mấy, phải vào file hoặc và database chỉnh mới được , phiền lắm .....
Backup nếu rãnh thì ngày 2 lần rùi auto chuyển wa host khác . Vậy là an tâm phần backup luôn.
Các file config thì ngồi encode PHP thông thường để giấu thông tin database là khỏe, kiếm mấy cái kiểu encode dỏm nhưng lạ là được vì chẳng mấy thằng hacker ngồi decode đâu , tụi nó toàn dùng tool để decode ;)
còn thiếu gì ko ta , chắc vậy là đủ rồi :D
 
Top