即使重命名其扩展名,也阻止上传 exe
Posted
技术标签:
【中文标题】即使重命名其扩展名,也阻止上传 exe【英文标题】:Prevent an exe from being uploaded even after renaming its extention 【发布时间】:2014-09-21 18:17:57 【问题描述】:我正在使用 c# 开发 asp.net。
我的表单中有一个文件上传控件。一切正常。
问题是.exe
文件可以通过重命名来上传。我也想限制大小。
【问题讨论】:
也许this question 可以帮忙? 我已经更新了我的答案。让我知道它是否对您有帮助 【参考方案1】:在您的情况下,最好的方法是检查文件的第一个字节以确定它们是什么。
您应该使用FindMimeFromData function 根据提供的数据确定 MIME 类型。
查看this文件签名表
this 的 SO 回答向您展示了如何在不使用扩展名的情况下获取 mime 类型。
Here 有一个包含文件签名列表的表格
exe
文件具有十六进制签名 4D 5A
(在 ASCII 表示中,0x5A4D
是 MZ
)
从这一点我们可以做这个功能
public static bool IsExecutable(string filePath)
var firstBytes = new byte[2];
using (var fileStream = File.Open(filePath, FileMode.Open))
fileStream.Read(firstBytes, 0, 2);
return Encoding.UTF8.GetString(firstBytes) == "MZ";
【讨论】:
以上是关于即使重命名其扩展名,也阻止上传 exe的主要内容,如果未能解决你的问题,请参考以下文章
wordpress上传图片时重命名--修改插件时遇到的一些问题