有什么方法可以消毒"消毒" C#中的PDF文件?

时间:2016-03-24 19:13:00

标签: c# pdfsharp

尝试删除PDF中的病毒等有哪些选择?如何在PDF中隐藏代码?我可以删除至少大部分吗?我希望还有漏洞,但它有助于删除下面的元数据吗?

Stream stream = new MemoryStream(_fileBytes);
PdfDocument document = new PdfDocument();
document.Save(stream, true);
document.Info.Author = "";
document.Info.CreationDate = new DateTime();
document.Info.Creator = "";
document.Info.Elements = new PdfDictionary.DictionaryElements();
document.Info.Internals = new PdfSharp.Pdf.Advanced.PdfObjectInternals();
document.Info.Keywords = "";

我担心的是,如果注册用户上传了错误的PDF,那么当其他用户从服务器下载时,他们就会受到感染。而不是尝试清理PDF是否有更好的方法?

2 个答案:

答案 0 :(得分:2)

你应该做的一件事是在你的服务器上安装反病毒软件并让它扫描上传的文件,正如dman2306建议的那样。

除了安全性之外,您还可以从pdf文件中删除元素,理论上这些元素可能是攻击的载体。经典的例子是pdf文件允许嵌入和执行javscript。此功能已被多种类型的恶意软件利用。

因此,您可以从文档中删除容器javascript的PdfObjects。如果我记得,注释也允许执行程序,所以你也可以删除它们。

您可能认为有许多不同类型的名称可能是攻击的潜在载体。我想到的一些是自动执行对象,就像我说的,javascript对象。除了推荐的病毒扫描之外,删除这些元素应该有助于将风险降至最低。

答案 1 :(得分:1)

我去过一些他们对这种情况有奇怪要求的地方。他们所做的是将其作为电子邮件的附件,然后将其发送到某个邮箱。 Exchange服务器正在对附件进行病毒检查,因此这是完成该任务最简单,最经济的方法。然后你以编程方式获取成功的电子邮件并下载它。

不是说这是最好的解决方案,因为它很难看,但它已成功用于完成PDF病毒检查。