【发布时间】:2013-12-22 12:21:03
【问题描述】:
我想用jQuery File Upload 上传一些文件,但我想通过此代码过滤文件类型:
public class file : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
HttpPostedFile postedFile = context.Request.Files["file"];
string extension = Path.GetExtension(postedFile.FileName).ToLower();
string[] validExtensions = { ".jpg", ".jpeg", ".png", ".gif", ".pdf", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pps", ".ppsx" };
if (extension.IndexOf(extension) != -1)
{
// upload files here
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
此代码运行良好,但是当我重命名文件扩展名时(例如将 x.exe 重命名为 x.jpg 时)上述代码,接受文件类型并开始上传文件。
我该如何处理这个问题?
【问题讨论】:
-
查看此 OWASP 页面以了解文件上传安全性:owasp.org/index.php/Unrestricted_File_Upload
标签: jquery asp.net file-upload file-type generic-handler