怎麼判斷上傳檔案是否圖片或是否安全
怎麼判斷上傳檔案是否圖片或是否安全
------解決方案--------------------
一般是通過檔案名稱的原始尾碼來進行檔案上傳時候的判別,然後儲存後也是對應的類型,至於安全的話只要不是可執行檔基本都算安全,不知道你想問的是啥安全。
------解決方案--------------------
$_FILES["file"]["type"] -- 可以判斷上傳檔案的類型。
至於安全,看你的標準是什麼了。
------解決方案--------------------
不可相信任何傳入的東西,否則你就要吞食輕信的苦果了
你看看我這張圖片怎麼樣?
$im = imagecreate(1,1);
$color = imagecolorallocate($im, 255, 0, 0);
imagegif($im, '1.gif');
$s =<<< TXT
phpinfo();
?>
TXT;
file_put_contents('1.gif', $s, FILE_APPEND);
print_r(getimagesize('1.gif'));
echo '';
include '1.gif';
------解決方案--------------------
使用mime_content_type 檢查一下類型
http://php.net/manual/zh/function.mime-content-type.php
我一般會用imagemagick轉一次為圖片的。
------解決方案--------------------
引用:
不可相信任何傳入的東西,否則你就要吞食輕信的苦果了
你看看我這張圖片怎麼樣?
$im = imagecreate(1,1);
$color = imagecolorallocate($im, 255, 0, 0);
imagegif($im, '1.gif');
$s =<<< TXT
phpinfo();
?>
TXT;
file_put_contents('1.gif', $s, FILE_APPEND);
print_r(getimagesize('1.gif'));
echo '';
include '1.gif';
我測試了你的代碼,phpinfo()執行了,但是誰會去include一張圖片呢?
這樣的圖片永遠不會被執行吧?