什麼字在我的應用程序建立一個靜態的字符串時,用戶上傳或下載文件。在該字符串中,文件名將從該字符串中的前端傳遞。通過這種方式,用戶可以執行諸如.. \ .. \另一個file.file之類的操作來篡改並獲取來自其他用戶的數據。因此,我需要過濾我得到的文件名以防止出現這種情況。什麼是需要過濾以防止篡改的字符?我現在有雙點和前後斜線。還有什麼我應該考慮的?有沒有一種標準的方式在C#中做到這一點?下載/上傳文件,過濾C#
1
A
回答
2
我建議使用Path.GetInvalidFileNameChars
:
public static bool IsValidFileName(string fileName)
{
return fileName.IndexOfAny(Path.GetInvalidFileNameChars()) == -1;
}
..
之前和/或通過一個或\
/
,這兩者都包括在由GetInvalidFileNameChars
返回的數組中成功時是典型地僅危險。就其本身而言,..
是無害的(除非你專門解決目錄路徑),你不應該禁止它,因爲人們可能希望在他們的文件名(如The A...Z of Programming.pdf
)引進橢圓。
2
如果不同的用戶保存一個文件具有相同的名稱?你是否爲每個用戶創建一個文件夾?
最有可能的,你應該做的是保存他們在一個數據庫記錄,其中還包含一個指向實際文件(使用你生成一個文件名,也許是一個GUID)提供的名稱是什麼。如果您想將文檔保存在數據庫中,也可以考慮使用文件流數據類型。
不會有好結果可能來自讓您的用戶確定服務器:)
相關問題
- 1. PHP上傳文件過濾
- 2. 上傳和下載文件ASP.NET C#IIS7
- 3. Objective-C FTP上傳和下載文件
- 4. 設置文件過濾器sshj v0.5.0做上傳文件的下載時
- 5. 下載上傳文件
- 6. Dropbox文件下載/上傳
- 7. 文件上傳/下載
- 8. Cyberduck中的文件下載過濾
- 9. Alfresco共享文件上傳過濾器
- 10. 如何過濾文件kendo-ui上傳?
- 11. JSF配置文件上傳過濾器
- 12. 自定義文件過濾器上傳
- 13. 通過PHP上傳和下載WordPress上的文件
- 14. 通過jsp網站上的文件上傳和下載工具
- 15. 同步框架下載與過濾器,但上傳全部
- 16. 文件上傳/下載在ASP.NET
- 17. Python restplus API上傳和下載文件
- 18. Laravel文件上傳開始下載
- 19. primefaces文件上傳和下載PDF
- 20. JNLP文件上傳和下載失敗
- 21. 角2上傳和下載文件?
- 22. PHP上傳和下載文件
- 23. 下載上傳的文件paperclip
- 24. 下載共享資料文件上傳
- 25. 使用UDP文件上傳/下載
- 26. plupload - 下載/刪除上傳的文件
- 27. 文件上傳/下載使用vb.net
- 28. 使用DropzoneJs下載上傳的文件
- 29. 如何下載上傳的文件?
- 30. 文件上傳和下載超時
上的文件名。如果有可能與我已經選擇該sollution數據庫工作。現在過濾是我的第二好選擇。 – Patrick 2012-04-22 08:46:44