什麼是最好的和MSIT的安全方式,以獲得MIME類型的文件?我已經發現了這一點:獲取文件MIME類型的最佳方式在php
http://de3.php.net/manual/de/ref.fileinfo.php
但FileInfo的()似乎是容易操縱。有沒有更好的方法來獲取文件MIME類型?順便說一下,我需要它的圖像文件。
什麼是最好的和MSIT的安全方式,以獲得MIME類型的文件?我已經發現了這一點:獲取文件MIME類型的最佳方式在php
http://de3.php.net/manual/de/ref.fileinfo.php
但FileInfo的()似乎是容易操縱。有沒有更好的方法來獲取文件MIME類型?順便說一下,我需要它的圖像文件。
和getimagesize()返回的MIME類型也 http://php.net/manual/en/function.getimagesize.php
<?php
//png image called gif
$image = 'temp.gif';
$size = getimagesize($image);
if (isset($size['mime']) && $size[0]>0 && $size[1]>0) {
echo"Content-type: {$size['mime']}";
//outputs Content-type: image/png
} else {
echo"not an image";
}
?>
這裏的另一種方式
<?php
$info = getimagesize("image.gif");
$type = $info['mime'];
?>
但它會幫助,如果你可以說你的「安全」和什麼樣的意思到底是什麼操縱你的想法。
你總是可以自己掃描文件的魔術字節和不是。我相信在PECL中有一堆方便的funcs,但是由於它們在目標託管上的可用性可能會有所不同,所以您可能希望採取艱難的方式。例如參見本 -
http://www.garykessler.net/library/file_sigs.html
- 文件簽名(或魔法字節,或任何他們現在被稱爲)。您知道要接受哪種文件類型,因此只需掃描傳入文件以獲取一組簽名。
另一個選項是允許PHP運行unix shell並使用帶有相應標誌的file
命令來測試您的文件並根據實際文件內容獲取真實的mime類型。