2009-10-07 25 views
2

我目前有一个网站(ASP.NET 3.5,IIS 7.0),允许用户上传Excel文件进​​行处理。安全实现,允许用户上传Excel文档

我应该关心文档打开时正在执行的病毒和恶意代码吗?

我们正在使用.NET Office.Interop程序集从文档中获取信息。这些信息并不完全一致,需要一点点询问才能将其转换为所需的格式。

一旦文件被上传,它将被存储在数据库中,只有当文件被检查时才被写入磁盘。

有没有可以提供安全实施的建议?

回答

2

由于xlsx工作簿不能包含宏,所以使用xlsx(Open XML)文件格式比使用xls或xlsm更安全。

您可能会考虑使用不使用COM Interop或任何本地调用且不需要FullTrust的纯.NET组件。 是这种组件的一个例子。

声明:我自己的SpreadsheetGear LLC

0

消毒是唯一确定的方法。由于它不是简单的表单输入,所以您需要采取额外的预防措施。我可以想象的最简单的方法是对任何二进制指示符进行核对,如控制字符。

就最佳实践而言,您无法真正地告诉您的用户“请不要破解我”,因此您必须拥有一定程度的信任(或放弃Excel文件)......我会说如果第一遍拾取任何二进制标志,焚烧它,并抛出一个相当钝的错误,如“文件格式错误”,等等。

但当然,你的用户会谋杀你,他们会得到一个好的错误文件。