文件验证 - 内容类型或扩展名?

时间:2014-06-24 21:04:20

标签: asp.net

我需要验证文件是否是图像。 我应该检查内容类型还是扩展程序?什么更安全/更好? 我认为检查扩展更好 - 您怎么看?

string ext = System.IO.Path.GetExtension(fileName).ToLower();

1 个答案:

答案 0 :(得分:2)

如果您只关心IMAGE文件,那么 Content-Type 就是您的选择。

但是...

如果您关心图像类型,则必须通过扩展名进行检查,因为实际上没有从内容类型文件的真实映射扩展。例如," image / jpeg" 的内容类型可以映射到 .jpg .jpeg

  

但是,如果您正在谈论检查用户上传的文件,那么这两种方法都安全,因为它们依赖于用户输入。请参阅OWASP: Unrestricted File Upload