2014-09-24 95 views
4

我想使用PyPDF2,但首先要确保它可以安全使用。我无法找到任何文件。我想用它来确保上传的文件是有效的PDF文件。用户被验证,但我担心他们仍然能够在不知不觉中上传不安全的东西。 PyPDF2有什么方法可以告诉,即使它是PDF,它是不安全的?打开不安全文件时,PyPDF2是否采取任何安全措施?

来源: https://github.com/mstamy2/PyPDF2

文档: https://pythonhosted.org/PyPDF2/

+2

如果您确定了您担心的安全风险,可能会有帮助。看起来大多数PDF安全风险来自于渲染过程中执行代码。 (http://security.stackexchange.com/a/31551/46979和http://security.stackexchange.com/a/31552/46979是相关的。提到的JavaScript的属性也适用于Python。)PyPDF2似乎只是简单的成为PDF *解析器*和生成器。我怀疑它实际上是呈现内容(因此不会执行代码)。 – jpmc26 2014-09-24 19:16:54

+0

PyPDF2可能会将一部分文件评估为python或以其他方式执行它的内容吗? – northben 2014-09-24 21:08:20

回答

0

有没有什么办法,PyPDF2将能够诉说,哪怕是一个 PDF,它是不安全的?

不,因为PyPDF2不包含任何安全扫描功能。任何对您的系统有害的内容可能会或可能不会通过PyPDF,并依然会对您的系统造成危险,这取决于您采取了哪些其他预防措施。

由于jpmc26表示PyPDF只是一个解析器/生成器,因此PDF的内容不太可能构成PyPDF本身的安全线程。

0

如果您担心pdf的有效性,如果您尝试使用PyPDF2操作PDF而不是有效的PDF,那么它可能会返回错误。至于检查pdf的内容,库本身不会这样做,但是您可以编写方法来检查特定模式的内容,分析流并查找其他方法来自行检查它。开始的最好方法是自己创建一个无效的PDF,并找出你想要查找的东西。它也有一些密码验证,但我真的没有处理图书馆的那部分。如果您可以学习如何有效地使用它,PyPDF2是一个非常强大的工具!