安全实施,允许用户上传Excel文档

时间:2009-10-07 07:02:56

标签: c# asp.net security excel

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

我是否应该关注文档打开时执行的病毒和恶意代码?

我们目前正在使用.NET Office.Interop程序集从文档中获取信息。这些信息并不完全是表格式的,需要进行一些询问才​​能使其达到所需的格式。

文件上传后,只有在检查文件时才会将文件存储在数据库中。

是否有任何可以提供安全实施的建议?

2 个答案:

答案 0 :(得分:2)

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

您可以考虑使用不使用COM Interop或任何本机调用且不需要FullTrust的纯.NET组件。 SpreadsheetGear for .NET就是这样一个组件的一个例子。

免责声明:我拥有SpreadsheetGear LLC

答案 1 :(得分:0)

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

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

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