【发布时间】:2015-11-07 23:27:48
【问题描述】:
我正在制作一个网络应用程序。它允许您上传 .txt 或 .log 文件(例如 IIS 日志)。
我当前检查它是 .txt 还是 .log 的方法是检查文件扩展名。现在我不喜欢这样,因为它允许任何人将 virus.exe 更改为 virus.txt 并且它会上传。
如何验证它是否真的是一个文本文件? 我确信这是一个常见问题,但我似乎找不到任何好的解决方案。
【问题讨论】:
-
可以查看文件的mimetype
-
@user1666620:但你不能相信它。
-
@SLaks 你也不能信任文件扩展名。
-
@user1666620 这就是我问这个问题的原因。
-
virus.exe 到 virus.txt 是问题的较小部分。从virus.vbs 到virus.txt 是最差的,因为vbs 文件是 文本而不是二进制开头的......
标签: c# .net asp.net-mvc security