【问题标题】:File uploads to server. Do I need to check for viruses?文件上传到服务器。我需要检查病毒吗?
【发布时间】:2017-04-06 13:07:30
【问题描述】:

一个提议的网站将允许人们注册工作并在注册时上传他们的简历。然后,第三方使用自动 ftp 传输从服务器上提取 CV,并将其存储在他们的服务器上。最终用户,然后下载所述文件以在他们的 PC 上打开。

第三方表示他们不会检查文件中的病毒,并且他们认为这是文件传输双方人员的责任。

如果我采用相同的方法,并说最终用户在上传/下载文件时对其进行扫描,那么托管网站的服务器是否存在感染风险?

文件扩展名可能仅限于 .pdf、.txt .doc 等。

如果可能的话,我想避免寻找可以编写脚本以实时扫描文件的防病毒产品的麻烦。

【问题讨论】:

  • 看看this answer
  • 如果您从您的用户那里接受任意文件,然后允许其他用户下载这些相同的文件 - 请确保您应该确保它们没有危险。
  • 但最终托管文件的第三方显然不采取这种观点。

标签: c# asp.net windows-server-2012


【解决方案1】:

警告最终用户

您无法确保下载这些文件的人是安全的,即使使用某些 AV 扫描所有这些文件也是如此。

如果您可以向该服务器添加一个 AV(WinServer2012 不是带有集成的 Windows Defender 吗?)那显然会更好。

然而,虽然这可能很好,给用户一种专业的感觉并增加了错觉的安全性,但最终用户有责任确保他受到保护。即使是最受信任的网站也可能包含一些被劫持的插件,从而感染其访问者。

在用户开始任何下载之前,非常清楚了解这些文件是由不受您控制的第三方提供的。

我会说这已经足够了。

其他步骤

您可以将文件类型限制为 PDF,TXT 文件不是很专业,并且所有主要的 Office 应用程序(包括免费)都具有导出为 PDF 的方式(因此不需要 DOC 文件)。这减少了攻击面,您甚至可以设法实现自己的方式来扫描这些 PDF 文件。应该有能够读取这些 PDF 文件并提取任何可疑内容进行验证的 C# 库,this 就是一个很好的例子。

【讨论】:

  • 验证文件类型有其自身的一系列问题。现在您的应用程序代码正在打开用户提交的文件....有人可能会在该文件中偷偷利用漏洞。
  • 没错@mason,尽管当他将这些文件从客户端计算机下载到他的网站时,他已经“打开”了这些文件。有很多方法可以利用这样的网站,不仅在文件内容级别。他必须至少部分验证客户发送给他的数据,不是吗?
  • 复制字节与使用库打开字节并实际解析内容不同。假设您收到一个扩展名为 .pdf 的文件,因此您尝试使用 iTextSharp 打开该文件以验证它是有效的 PDF。现在 iTextSharp 中的任何安全漏洞都可以被攻击者利用。并且它不需要攻击者的所有知识来利用。这是一个受欢迎的库,通常不难做出有根据的猜测网站使用的技术堆栈。
  • 当然,但是,虽然更难做到,但如果不采取预防措施,即使是简单的文件上传也可能被利用。无论如何,扫描这些文件并不意味着可以快速解决更大的问题。然而,如果无法使用 AV,这可能是一种折衷方案,但用户仍需要某种额外的验证。这显然有其自身的缺点。
  • 感谢您的建议。文件的下载将通过最终托管文件的第三方提供的单独的 CRM 应用程序,因此我无法控制任何警告等。我猜测并非所有拥有 CV 的用户都可以导出为 PDF可能无法接受这种方法。我同意打开文件可能会给服务器带来风险。我想解决方案最初与该建议类似 - 警告用户不要上传受感染的文件,并口头告诉 CRM 用户(我的客户)他们需要检查文件是否有病毒。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-28
  • 1970-01-01
  • 1970-01-01
  • 2013-07-19
  • 2011-03-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多