|
- 文件頭就是爲了描述一個文件的一些重要的屬性,比如圖片的長度、寬度、像素尺寸等,當程序打開文件時讀取這些屬性對文件進行處理。
|
|
- getimagesize() 函數用於獲取圖像大小及相關信息,成功返回一個數組,失敗則返回 FALSE 併產生一條錯誤信息。
|
|
- getimagesize( string filename ) 例子:
- <?php $array = getimagesize("images/flower_1.jpg"); print_r($array); ?>
- 瀏覽器顯示如下:
- Array ( [0] => 350 [1] => 318 [2] => 2 [3] => width="350" height="318" [bits] => 8 [channels] => 3 [mime] => image/jpeg ) 返回結果說明
- 索引 0 給出的是圖像寬度的像素值
- 索引 1 給出的是圖像高度的像素值
- 索引 2 給出的是圖像的類型,返回的是數字,其中1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM
- 索引 3 給出的是一個寬度和高度的字符串,可以直接用於 HTML 的 <image> 標籤
- 索引 bits 給出的是圖像的每種顏色的位數,二進制格式
- 索引 channels 給出的是圖像的通道值,RGB 圖像默認是 3
- 索引 mime 給出的是圖像的 MIME 信息,此信息可以用來在 HTTP Content-type 頭信息中發送正確的信息,如:header("Content-type: image/jpeg");
|
|
- 原型爲:int memcmp(const void *str1, const void *str2, size_t n));
- 其功能是把存儲區 str1 和存儲區 str2 的前 n 個字節進行比較。
- 該函數是按字節比較的,位於string.h。
|
|
- Web應用程序在校驗文件類型、文件擴展名的同時,也會校驗文件頭,從而進一步確定文件的類型。針對這種情況,可以通過在上傳的一句話木馬文件的開頭加入特定的文件頭從而繞過這種校驗方式。
|
|
- JPG
- FF D8 FF E0 00 10 4A 46 49 46
- png
- 89 50 4E 47 0D 0A 1A 0A
- gif
- 47 49 46 38 39 61
|
|
- 1.將文件的前面加通過16進制編輯器添加文件頭。如:GIF89a
- 2.將一個正常的圖片文件添加到一個php文件前面,通過命令行copy。
|