文件上传:要保存的文件名称应该是什么?

Shy*_*yju 1 asp.net file-upload

我将把文件上传控件添加到我的ASP.NET 2.0网页,以便用户可以上传文件.文件将存储在服务器中,文件名为用户名.我想知道保存到服务器时命名文件的最佳选项是什么.需要考虑安全性,性能,灵活性来处理文件等.如果我错过任何内容,请指导我

我正在考虑的选项:

  1. 使用与输入文件名相同的名称上载
  2. 添加用户ID +随机数+文件名作为输入文件名
  3. 以秒为单位创建随机数+当前时间并使用该数字保存文件.将有一个表来映射此号码与用户上传

还要别的吗?什么是最好的方法?

提前致谢

FWH*_*FWH 5

永远不要将用户输入用于文件名.不要使用用户名.用户使用用户ID(我假设您的用户拥有唯一ID).

切勿使用原始文件名.使用您的解决方案编号3,加上用户ID而不是用户名.

为了您的信息,几年前PHP有一个漏洞:一个可以用文件上传伪造HTTP POST请求,文件名如"../../anything.php",以及php _FILES数组,假设要包含已清理的值,没有检测到这些文件名,因此可以在文件系统中的任何位置写入文件.

  • 因为我可以上传一些PHP代码,如果你用.php扩展名保存在服务器上,那么当我访问它时它会执行.有很多例子,当允许使用任意名称进行文件上传时,很难想到获得访问服务器的所有方法,这就是为什么最好不要首先允许任意名称. (2认同)