一个专业有用且安全的文件类型列表?

7
我有一个系统,用户可以上传任何东西,这些文件对其他用户可用。
我需要列出一份真正被不同行业专业人士需要的文件类型清单,这些文件需要安全可靠,免受黑客、病毒等威胁。以下是一些已知的有用且安全的文件类型清单:
.doc .docx .gif .jpg .jpeg .mpg .mpeg .mp3 .odt .odp .ods .pdf .ppt .pptx .tif .tiff .txt .xls .xlsx .wav
请问还有哪些既有用又安全的文件类型?
澄清:
许多评论和回复要求更清晰地定义“免受黑客、病毒等威胁”的含义——我提出这个问题时,确切地向大家说明了这个问题,因为我对文件类型及其风险的理解不如你们深入,希望得到指导:
1) 有哪些文件类型可以使我的网站更加安全;
2) 如果没有“安全”的文件类型,如何继续使用灵活的文件上传和共享系统。
如果的确可以将任何恶意文件打包成看似安全的文件,则我该如何保护我的用户?

3
“安全免受黑客/病毒攻击”?这是什么意思?如果您认为“.doc”或“.xls”文件不会感染病毒,那么您需要提供“安全免受病毒攻击”的定义。 - S.Lott
2
在检查文件内容之前,您不能假定文件是安全的。事实上,.docx、pptx 和 .xslx 文件在底层都是 .zip 文件。尝试将它们重命名为 .zip 并打开它们...此外,某些主要操作系统漏洞是通过图像文件 (.gif .jpg .jpeg .tif .tiff) 实现的,更不用说非常不安全的 MS Office 文件 (.doc .docx .ppt .pptx .xls .xlsx) 了。不久前,允许越狱 iPhone 的漏洞之一是通过 .tiff 渲染系统上的一个错误来实现的。 - Juan Gomez
4
只需要封锁病毒,就可以了。 - Johnno Nolan
@Juandg - 感谢你提供的其中一个更有用的答案。鉴于几乎任何文件都可以用来发动攻击,网站审查附件的最佳实践是什么?如果我不能使用该文件类型,那么我应该使用什么? - sscirrus
旧的办公文件(.doc,.ppt,.xls)是危险的,但微软已经付出了很大的努力来确保新版本是安全的。例如,现代的Excel电子表格(.xlsx)不包含宏。宏存储在单独的(.xlsm)文件中。 - Jordan
7个回答

3

如果你使用的程序编写得很糟糕(或者粗心大意,或者恶意),那么没有任何文件类型是安全的。


2

你不能假设所有具有特定扩展名的文件都不会受到“病毒”的影响。

我可以轻松地将恶意可执行文件重命名为.doc并“黑入”你的系统。

编辑:

没有(简单的?)方法检查用户上传的文件是否是恶意的。

你正在创建的应用程序与其他任何文件共享网站(Rapidshare、Megaupload等)没有区别。

没有任何东西能阻止任何人向这些网站上传恶意文件。


@sscirrus,他们并不会,许多病毒都是通过这些下载来源传播的。 - Chad
@sscirrus 你可以在服务器端运行一个杀毒软件,扫描所有传入的文件。 - Chad
除了@Chad提到的在您的服务器上运行扫描所有传入文件的AV之外,我想不出其他方法。 - ryanprayogo
@sscirrus 这是一个问题,应该去 Server Fault 提问,而不是 Stack Overflow。 - Chad
在Dropbox(或类似的)帐户上共享文件。当然,在使用之前,您仍然需要检查文件是否恶意,但是恶意文件的风险不再存在于您的服务器上。 - Els den Iep
显示剩余3条评论

2

安全文件不存在。普通文本文件是安全的吗?例如,带有以下内容:

format c:

如果某个程序能够执行文件的内容......你应该明白这意味着什么。
因此,这里的文件并不安全——只有对运行代码(程序)的限制。(如果这个答案不被接受,我也理解。) :)

1

至于“有用”,您需要向客户询问。

至于安全性,因为文件扩展名只是文件名的一部分,它仅提供了文件类型的建议,所以并不存在完全的安全。文件类型不一定准确表示文件的实际内容,并且可以轻易地被篡改。


1

与其基于文件类型进行保护,我会在上传时让第三方对每个文件进行病毒扫描。拒绝那些被识别为阳性的文件。


你知道有哪些第三方可以进行这种扫描的例子吗?他们将如何集成到Heroku中? - sscirrus

0

他要求一份“安全”的文件扩展名列表,而不是所有“可能”的文件扩展名。 - Juan Gomez
@juandg OP 还在询问专业人士真正需要的文件类型清单。这取决于你所从事的领域,可能是任何东西。 - meouw

0

你可以包含所有的数据文件并排除所有可执行文件/脚本文件。 这里有一个可执行文件扩展名列表:http://pcsupport.about.com/od/tipstricks/a/execfileext.htm

你可以查看其他来源以提高覆盖率。

编辑:针对问题的第二部分,涉及安全性- 最好在服务器上安装一堆反恶意软件来检查每个提交-它们是为这个专业任务而设计的,使用它们。无论如何,只要人们不寻找破解软件,任何可执行文件都没有专业用途。


“安全”做得不好比什么都不做更糟,因为它会给人一种虚假的安全感。特别是试图通过查看文件名来保护用户免受有害文件内容的影响,这种想法非常天真。迄今为止,即使是ThisIsADangerousVirus.cmd这样的文件名也没有造成任何伤害。 - Ingo
你认为我谈到了安全性吗?这个问题有两个部分:文件扩展名和安全性。我只回答了第一个部分。 - d-live
那么,你为什么建议“排除所有可执行文件”? - Ingo
安全性可以通过在服务器上安装大量专门用于此类任务的反恶意软件来轻松完成,而不是采用一些自定义可疑逻辑来“嗅探”文件内容。 - d-live
Q:那么你为什么建议“排除所有可执行文件”?A: 对于专业有用的文件 - 我认为除非他们正在寻找破解软件,否则没有人对可执行文件感兴趣,数据文件很少会被命名为ImportantDocument.exe。 - d-live

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接