日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
開發(fā)文件上傳功能稍不注意就會引發(fā)安全漏洞

 1. 前言

成都做網(wǎng)站、成都網(wǎng)站制作服務(wù)團隊是一支充滿著熱情的團隊,執(zhí)著、敏銳、追求更好,是創(chuàng)新互聯(lián)的標(biāo)準(zhǔn)與要求,同時竭誠為客戶提供服務(wù)是我們的理念。成都創(chuàng)新互聯(lián)公司把每個網(wǎng)站當(dāng)做一個產(chǎn)品來開發(fā),精雕細(xì)琢,追求一名工匠心中的細(xì)致,我們更用心!

文件上傳在日常開發(fā)中十分常見,但是潛在的安全問題非常容易忽視。一旦開發(fā)中忽視了這些問題,將會引發(fā)系統(tǒng)安全漏洞。

2. 文件上傳開發(fā)的安全建議

通常我們上傳的文件是由客戶端控制的,這種情況下就給了不懷好意人可乘之機。一些危險的可執(zhí)行腳本將有可能被注入服務(wù)器中去。因此胖哥總結(jié)了以下幾點建議。

文件類型過濾

開發(fā)者應(yīng)該有一個過濾清單允許上傳的文件類型應(yīng)僅限于業(yè)務(wù)功能所需的文件類型,在沒有允許列表過濾器的情況下,切勿直接接受文件名及其擴展名,同時前端應(yīng)該對該清單進行說明。這是一個必要的步驟,大多數(shù)開發(fā)者也做得很好。

文件名稱處理

不能使用原始文件名!這是一個容易被忽略的問題。很多開發(fā)者喜歡直接把上傳文件的按照原始文件名進行轉(zhuǎn)存。

 
 
 
 
  1. // Spring boot 開發(fā)中不建議使用這個來作為轉(zhuǎn)存的名稱,你應(yīng)該生成一個新的名稱來映射此名稱
  2. String originalFilename = MultipartFile.getOriginalFilename();

這樣是不安全的。雖然大部分/\:<>?字符已經(jīng)被過濾掉,但是. * % $,這些腳本中的??鸵廊豢梢员话谖募?,所以不能使用原始文件名,你應(yīng)該指定一個算法來進行重命名,建議使用一種摘要算法來確定文件名。例如,文件名可以是文件名加上日期的 MD5 哈希。

如果業(yè)務(wù)需要原始文件名的話存儲新的命名和原始名稱的映射即可。

摘要校驗

服務(wù)端無論上傳、修改還是下載文件都需要進行摘要校驗(MD5、SHA256),以防止文件和預(yù)設(shè)的不一致??蛻舳擞斜匾那闆r下也建議進行摘要校驗。

限制大小

這一點如果使用 Spring 進行開發(fā)的話已經(jīng)做了限制,如果該限制不滿足業(yè)務(wù)需要,可以修改,但是不能移除限制,否則會導(dǎo)致拒絕服務(wù)攻擊。

訪問限制

如果不是業(yè)務(wù)需要,只有身份驗證和授權(quán)的用戶才能使用文件上傳功能。不然你的系統(tǒng)就成了別人的免費圖床。

行為審計

對于安全我們只能被動防御,因此對文件上傳的操作建議有審計日志、而且審計日志不應(yīng)該受文件系統(tǒng)影響,這樣發(fā)生安全事件時可以快速定位問題。

3. 總結(jié)

其實還有不少的安全要點需要考慮,只不過目前大部分都使用了第三方存儲,如果使用自研的系統(tǒng)可能需要考慮的更多。不過針對普通開發(fā)來說做到上面的幾點就夠了。

本文轉(zhuǎn)載自微信公眾號「 碼農(nóng)小胖哥」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系碼農(nóng)小胖哥公眾號。


文章標(biāo)題:開發(fā)文件上傳功能稍不注意就會引發(fā)安全漏洞
網(wǎng)頁鏈接:http://m.5511xx.com/article/ccsgcdo.html