2010-11-20 59 views

回答

1

我認爲你應該使用類似finfo_file的東西。據我所知,$_FILES["file"]["type"]可以被上傳者欺騙他想要的任何東西。

0

此外,您還可以檢查MIME類型,每個文件名.exe的可執行文件始終默

pplication /八位字節流,應用程序/ x-msdownload,應用/ EXE,應用程序/ x軸的應用類型如果你使用的RegExp或pathinfo,在這種情況下,我認爲是應用程序/ x-winexe,應用程序/ msdos窗口,應用程序/ x-msdos程序

0

更簡單,你只檢查文件名而不檢查文件類型。

檢查this answer來看看如何獲​​得MIME類型(FileInfo的或mime_content_type)

1

沒有可靠的方法來做到這一點作爲由客戶端發送的所有信息可以被篡改。

我只想檢查文件的擴展名,如:

if (strncasecmp(substr($_FILES["file"]["name"], -4), '.exe') === 0) { 
    // is .exe 
} 

此外,你可以查找特定magic numbers

只要確保要傳遞該文件,您就可以使用適當的MIME媒體類型(例如application/octet-stream)。

-1
$_FILES["uploaded_files"]["type"][$i] != "application/octet-stream" 
相關問題