2016-12-14 56 views
-1

你好我正在做表單上傳4個文件的字段。每個字段可以上傳1個文件。PHP - 防止html5輸入類型文件屬性多重黑客?

,但我只知道,黑客可以破解螢火蟲添加HTML5的「多」屬性。(見截圖) enter image description here

,然後黑客就可以上傳超過4個文件現在,我不希望發生的事情。

問題:如何才能將上傳文件限制爲4個文件?

這裏是我當前的代碼

for($i=0;$i<count($_FILES["file"]["name"]);$i++) { 
    if($_FILES["file"]["name"][$i] != "") { 
     $split = explode('.', $_FILES["file"]["name"][$i]); 
     $ext = end($split); 
     $tempFile = $_FILES['file']['tmp_name'][$i];   //3    


     $targetFile = "upload/". date('Y-m-d')."_".($i+1).".".$ext; //5 

     move_uploaded_file($tempFile,$targetFile); //6 
    } 
} 

..

<form method="post" action="upload.php" enctype="multipart/form-data"> 
    <input type="file" name="file[]"/><br> 
    <input type="file" name="file[]"/><br> 
    <input type="file" name="file[]"/><br> 
    <input type="file" name="file[]"/><br><br> 
    <input type="submit" value="Upload"/> 
</form> 
+2

如果需要,您可以使用服務器端驗證。 –

回答

1

像這樣的事情必須驗證服務器端。

if(count($_FILES["file"]["name"]) > 4) { 
    // show the user an error and refuse to continue 
}