什么字在我的应用程序建立一个静态的字符串时,用户上传或下载文件。在该字符串中,文件名将从该字符串中的前端传递。通过这种方式,用户可以执行诸如.. \ .. \另一个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. 设置文件过滤器sshj v0.5.0做上传文件的下载时
- 4. 如何过滤Telerik MVC上传文件?
- 5. 自定义文件过滤器上传
- 6. 通过jsp网站上的文件上传和下载工具
- 7. 通过PHP上传和下载WordPress上的文件
- 8. Codeigniter上传和下载文件
- 9. 使用psftp上传和下载文件
- 10. HttpClient和FileUpload大文件上传/下载
- 11. PHP上传和下载文件
- 12. SFTP文件同时上传和下载
- 13. Python restplus API上传和下载文件
- 14. 角2上传和下载文件?
- 15. 使用UDP文件上传/下载
- 16. java本地上传和下载文件
- 17. 下载上传的文件MVC 3
- 18. Java-如何下载和上传文件?
- 19. 文件上传/下载在ASP.NET
- 20. 我如何下载上传的文件?
- 21. 下载共享资料文件上传
- 22. 如何下载上传的文件?
- 23. 在RadAsync文件上传控件中应用文件过滤器
- 24. 通过C#中的ActiveX下载文件
- 25. 通过HTTPS(C#)下载文件
- 26. C#下载文件
- 27. 下载文件C#
- 28. 无法上传/通过谷歌驱动API下载文件
- 29. 通过远程方法调用文件上传和下载
- 30. 从iPhone通过FTP协议上传/下载文件
上的文件名。如果有可能与我已经选择该sollution数据库工作。现在过滤是我的第二好选择。 – Patrick 2012-04-22 08:46:44