2012-03-16 26 views
1

我剛剛閱讀這篇文章:http://www.acunetix.com/websitesecurity/upload-forms-threat.htm其中討論了允許用戶上傳文件到您的網絡服務器所涉及的一些安全風險。什麼是合理的方式來保護一個asp:fileupload

我目前正在使用asp:FileUpload控件接受簡歷(大概是office,pdf,open office docs等)的應用程序頁面。我開始使用將某個文件列入黑名單,只允許某些文件擴展名,現在在做了一些研究之後,我想知道通常用於增強安全性的其他一些方法。

在我的情況下,它是一個用C#編寫的asp.net 3.5 web應用程序。在Windows Server 2008r2上運行的IIS7.5提供服務。

+0

對於「安全性」,請確保服務器具有SSL證書,並且您的上傳頁面爲https。 – 2012-03-16 19:46:23

回答

1

我的祕訣是:

  • 確保文件僅上傳到無法從網絡直接訪問的目錄中(例如,使用.NET App_Data文件夾或文件夾外的文件夾IIS根目錄)。另一種方法是將文件流寫入一個image數據庫列,或者等效(如果不使用SQL Server)。
  • 編寫一個HTTP處理程序,可以檢查權限,角色等,它將讀取文件作爲流並將其輸出爲僅當用戶被授權時才響應(應使用web.config設置完成身份驗證檢查)。
  • 使用系統生成的文件名來防止未經授權的覆蓋。

所以很多時候我見過上傳來實現,簡單地寫一個文件夾,開發商不知道(或護理),該文件即可通過http://www.example.com/files/JustUploaded.pdf訪問不進行認證和/或授權。

+2

'image'數據類型已被棄用,應該使用'varbinary(max)'代替。 – Matthew 2012-03-19 16:46:59

0
  • 也許你可以將它們解析成流,這樣你就不會保存上傳器的文件,但你保存你的解析版本。
  • 也重命名文件,並在同一張光盤上存儲在一個特定的文件夾(具有特殊權限),而不是爲你的OS(單獨的分區)
  • 使用POST而不是PUT
  • 掃描病毒?
  • 限制最大尺寸

,最重要的是:驗證一切

也許有很多事情你可以檢查

+0

是的,它值得病毒掃描IMO如果文件將存儲在您控制的文件系統。 – SilverlightFox 2012-03-19 16:00:23

相關問題