資料載入中

胡言亂語

文件上傳過程中使用白名單、黑名單、或者MIME做認證


文件上傳過程中使用白名單、黑名單、或者MIME做認證
是不是被資安的問題搞得很煩?

我想,在建置系統的過程中,或多或少都會遇到資安的問題....

除非你是秉持著歡迎大家進來坐坐,想喝茶得自己來,泡咖啡的就在旁邊,然後吃不完可以順便帶走。

又或者,您的客人是一位很有禮貌的人,三不五時來拜訪您還給您帶來了禮物.....

但您希望說人來就好不用特別帶禮物來了。

又或者,如果您會想說真的想帶禮物,那麼幫我帶杯咖啡好了~

所以,該怎麼做?

設定黑名單
 $BlackList = array('asp','php','jsp','php5','asa','aspx');//黑名單列表
if (isset($_POST["submit"])){
$name = $_FILES['file']['name']; //接收上傳的檔案檔名
echo $name;
$extension = substr(strrchr($name,"."),1);//以副檔名判斷檔案類別
$boo = false;

foreach ($BlackList as $key=]$value){
if ($value==$extension){//判斷是否為自訂的黑名單
$boo=true;
break;//如果是黑名單直接退出
}
}
if(!$boo){//如果不是黑名單就進行上傳檔案
$size=$_FILES['file']['size'];//檔案大小
if($size]5242880){//檔案不能超過5MB
echo "您想上傳檔案不能超過5MB";
exit();
}
$tmp=$_FILES['upfile']['tmp_name'];//暫存位置
$uploadfile = $datum."_".$flag.".".$extension;//重新命名檔案
move_uploaded_file($tmp,"../uploadfile/".$uploadfile); //搬移到指定路徑
}else {
echo "您想上傳檔案無法允許被上傳";
}

}

設定白名單
$WhiteList = array('pdf','jpg','png','bmp','gif','jpg','doc');//白名單列表
if (isset($_POST["submit"])){
$name = $_FILES['file']['name']; //接收上傳的檔案檔名
$extension = substr(strrchr($name,"."),1);//以副檔名判斷檔案類別
$boo = false;

foreach ($WhiteList as $key=]$value){
if ($value==$extension){//判斷是否為自訂的白名單
$boo=true;
}
}
if($boo){//如果是白名單則開始執行
$size=$_FILES['file']['size'];//檔案大小
if($size]5242880){//檔案不能超過5MB
echo "您想上傳檔案不能超過5MB";
exit();
}
$tmp=$_FILES['upfile']['tmp_name'];//暫存位置
$uploadfile = $datum."_".$flag.".".$extension;//重新命名檔案
move_uploaded_file($tmp,"../uploadfile/".$uploadfile); //搬移到指定路徑
}else {
echo "您想上傳檔案無法允許被上傳";
}
}

MIME
if ($_FILE['file']['type']=="image/jpeg"){//判斷是否為jpg格式
$imageTempName=$_FILES['file']['tmp_name'];
$imageName=$_FILES['file']['name'];
$last = substr($imageName,strrpos($imageName,"."));
if(!is_dir("uploadFile"))
mkdir("uploadFile");
}
$imageName=md5($imageName).$last;
move_uploaded_file($imageTempName,"./uploadFile".$imageName);//指搬移到指定路徑
echo ("檔案上傳成功");
}
else{
echo ("您想上傳檔案無法允許被上傳");
exit();
}

我想,雖然禮多人不怪,但還是加把鎖,必竟我們現在談的是資安。

https://innstory.com/story-文件上傳過程中使用白名單、黑名單、或者MIME做認證-1594

上一篇
 分享壞處多過好處蘋果共同創辦人SteveWozniak要脫離臉書了

下一篇
分享連刪掉的前男友帳號臉書都幫你存好好?他教你打開臉書個人資料庫裡面個資多到嚇死人風傳媒 
  • 2,151
  • 0
  • 0

發表留言

作者簡介

離不開電腦的宅男


推薦閱讀

作者其他相關類別故事

PHP Caching Headers

PHP Caching He…

Mark Chang 7 年又 159 天 1.6K

最近測試平台系統執行速度,老實說測試的有點無力~ 總覺得能做的可以做的都做了,但速度就是快不了~...

設置屬性 PHP PDO setAttribute

設置屬性 PHP PDO s…

Mark Chang 5 年又 123 天 1.4K

以上紀錄  

如何將 a href 禁用

如何將 a href 禁用

Mark Chang 4 年又 128 天 1.4K

如標題,若採用CSS的方式作法如下: 接著在連結裡加入上列CSS 以上紀錄~