PHP上傳包含
-
- Pass-1(js前端驗證)
- less-2()
檔案上傳¶
在網站的營運過程中,不可避免地要對網站的某些頁面或者内容進行更新,這時便需要使用到網站的檔案上傳的功能。如果不對被上傳的檔案進行限制或者限制被繞過,該功能便有可能會被利用于上傳可執行檔案、腳本到伺服器上,進而進一步導緻伺服器淪陷
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHLzEkaOhXUq5EeVpHW3BjMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLmhjZjVmMyUjZzIWM1QWZ4IGZyQDNzIDZ0YWZiJ2NygzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
Pass-1(js前端驗證)
function checkFile() {
var file = document.getElementsByName('upload_file')[0].value;
if (file == null || file == "") {
alert("請選擇要上傳的檔案!");
return false;
}
//定義允許上傳的檔案類型
var allow_ext = ".jpg|.png|.gif";
//提取上傳檔案的類型
var ext_name = file.substring(file.lastIndexOf("."));
//判斷上傳檔案類型是否允許上傳
if (allow_ext.indexOf(ext_name + "|") == -1) {
var errMsg = "該檔案不允許上傳,請上傳" + allow_ext + "類型的檔案,目前檔案類型為:" + ext_name;
alert(errMsg);
return false;
}
}
直接改js
或者改變字尾
或者config禁用js
less-2()
MIME
多用途網際郵件擴充協定(MIME)是 Multipurpose Internet Mail Extensions 的縮寫,說明了如何安排消息格式使消息在不同的郵件系統内進行交換。MIME 的格式靈活,允許郵件中包含任意類型的檔案。MIME 消息可以包含文本、圖象、聲音、視訊及其它應用程式的特定資料。
電子郵件不僅可以用文字來叙述,還可以加載音樂圖像等多媒體形式。随着網絡的不斷革新,郵件也可以承載不同類型的檔案進行傳輸。這個就需要MIME協定的支援了。
$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
if (file_exists(UPLOAD_PATH)) {
if (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif')) {
$temp_file = $_FILES['upload_file']['tmp_name'];
$img_path = UPLOAD_PATH . '/' . $_FILES['upload_file']['name']
if (move_uploaded_file($temp_file, $img_path)) {
$is_upload = true;
} else {
$msg = '上傳出錯!';
}
} else {
$msg = '檔案類型不正确,請重新上傳!';
}
} else {
$msg = UPLOAD_PATH.'檔案夾不存在,請手工建立!';
}
}