2017-05-31 52 views
0
-----------------------------28762240629868 
Content-Disposition: form-data; name="file"; filename="1.jpg" 
Content-Type: text/html 

ÿØÿà 
.... 

如果有人故意將Content-Type從image/jpeg更改爲text/html,如何在服務器端檢測它?如何檢查是否在點擊服務器之前處理Content-Type

+0

我假設你正在檢查MIME類型?我真的不認爲MIME類型很容易被欺騙 – Akintunde007

回答

0

客戶端可能會發送操作內容類型的文件。如果您希望傳入的附件始終是圖像,請使用以下功能檢查圖像的高度和寬度。如果它返回FALSE,那麼它不是一個圖像。

imagesx($img); 

http://php.net/manual/en/function.imagesx.php

imagesy($img); 

http://php.net/manual/en/function.imagesy.php

重要:

爲了安全起見,如果您不確定,請不要在網頁上呈現/執行附件。只是總是強制下載圖像。發送標題並強制下載它,以防萬一用戶能夠上傳.EXE文件,那麼他仍然無法在瀏覽器上執行。

+0

我已經在使用getimagesize來驗證它的形象與否。有沒有什麼辦法獲得內容類型,即; 「text/html」? – Tusar

+0

您可以使用'exif_imagetype()'php函數來確定內容類型。它讀取圖像的第一個字節並檢查其簽名。 –

相關問題