我想用php製作圖片上傳系統,我希望用戶只能上傳 png,jpg文件,而不是病毒或其他文件。我怎樣才能做到這一點?如何保護php圖片上傳系統
2
A
回答
1
步驟1:檢查擴展(擴展文件結尾)
步驟2:檢查MIME類型($ FILE_INFO =和getimagesize($ _ FILES [ 'IMAGE_FILE']; $ file_mime = $ FILE_INFO [ 'MIME' ])
只允許您要上傳的那些圖像擴展名,就可以使白名單
嘗試像
$whitelist = array(".jpeg",".jpg",".png");
foreach ($whitelist as $item)
{
if(preg_match("/$item\$/i", $_FILES['uploadfile']['name']))
{
$uploaddir='uploads/uploads_image/';
$uploadfilename=mysql_prep(basename($_FILES['uploadfile']['name']));
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv= mcrypt_create_iv($iv_size,MCRYPT_DEV_RANDOM);
$newname= mcrypt_encrypt(MCRYPT_RIJNDAEL_256, "this is the key",$uploadfilename.time(), MCRYPT_MODE_ECB, $iv);
$newfilename= (bin2hex($newname));
$uploadfile=$uploaddir.$newfilename.".png";
$access=true;
}
}
可以阿爾斯O模塊的用戶的IP,如果用戶試圖通過使黑名單
foreach ($blacklist as $item)
{
if(preg_match("/$item\$/i", $_FILES['uploadfile']['name']))
{
$network = ip2long("10.12.0.0");
$mask = ip2long("255.255.0.0");
$ip = ip2long($_SERVER{'REMOTE_HOST'});
if (($network & $mask) == ($ip & $mask)) {
die("Unauthorized");
}
}
}
2
0
1st check:-
//check if contain php and kill it
$pos = strpos($filename,'php');
if(!($pos === false)) {
die('error');
}
2nd check:-
//get the file ext
$file_ext = strrchr($filename, '.');
$image_list = array(".jpg",".jpeg",".gif",".png");
if (!(in_array($file_ext, $image_list))) {
die('not allowed extension,please upload images only');
}
3rd check:-
$fileType = $_FILES["uploaded_file"]["type==image/jpeg || image/gif || image/png"];
4th check:-
preg_match("/.(gif|jpg|png)$/i", $fileName);
hope these checks solve your problem....
相關問題
- 1. 圖片上傳到文件系統
- 2. 上傳圖片失敗系統
- 3. 保護PHP/MySQL輪詢系統
- 4. 上傳圖片並保存多個尺寸使用PHP,Laravel文件系統,GD
- 5. 如何保護登錄系統
- 6. PHP CURL圖片上傳到遠程系統
- 7. 如何保護PHP圖像上傳腳本免受攻擊?
- 8. 如何使用PHP正確保護圖像上傳?
- 9. Javascript和PHP上傳系統
- 10. PHP文件上傳系統
- 11. 如何保存和上傳圖片
- 12. PHP圖片上傳
- 13. 圖片上傳PHP
- 14. 圖片上傳PHP
- 15. Php圖片上傳
- 16. php圖片上傳
- 17. php上傳圖片
- 18. 如何上傳圖片時,在PHP
- 19. 如何上傳圖片到MySQL PHP
- 20. 如何保存比在PHP中上傳的圖片
- 21. 通過PHP上傳圖片,將圖片路徑保存到MySQL
- 22. PHP的圖片上傳不會保存圖片到ftp
- 23. 保護上傳的文件(php和html)
- 24. 以PHP保護上傳的文件
- 25. Facebook的PHP SDK上傳圖片 - 圖片
- 26. PHP圖片上傳和顯示圖片
- 27. php上傳圖片失敗上傳
- 28. PHP圖片上傳問題
- 29. 圖片不會上傳PHP
- 30. 用php上傳圖片
更多信息,上傳雜項文件ü可以給我一些這方面的流行的代碼,就像每個人都使用它的東西? –
@BlackshadowBlackshadow你可以試試http://www.phpclasses.org/package/2181-PHP-Process-files-and-images-uploaded-via-a-form.html –