【问题标题】:Is there a reliable way to determine a text file?是否有可靠的方法来确定文本文件?
【发布时间】: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


【解决方案1】:

据我所知,没有完美的解决方案。

您可以从文件中读取部分字节,并从中对文件类型进行有根据的猜测。尝试阅读这篇 SO 帖子中的答案:

Using .NET, how can you find the mime type of a file based on the file signature not the extension

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-01
    • 1970-01-01
    • 2016-11-01
    相关资源
    最近更新 更多