我需要验证文件是否是图像。 我应该检查内容类型还是扩展程序?什么更安全/更好? 我认为检查扩展更好 - 您怎么看?
string ext = System.IO.Path.GetExtension(fileName).ToLower();
答案 0 :(得分:2)
如果您只关心IMAGE文件,那么 Content-Type 就是您的选择。
但是...
如果您关心图像类型,则必须通过扩展名进行检查,因为实际上没有从内容类型到文件的真实映射扩展。例如," image / jpeg" 的内容类型可以映射到 .jpg 或 .jpeg 。
但是,如果您正在谈论检查用户上传的文件,那么这两种方法都不安全,因为它们依赖于用户输入。请参阅OWASP: Unrestricted File Upload。