2012-03-06 95 views
0

我使用DOMPDF让Web应用程序的用户根据他们完全控制的HTML模板创建PDF发票。可以安全使用dompdf + file_get_contents吗?

我们已经在我们的服务器上禁用了file_get_contents(),但是如果我们想要的话可​​以启用它。

我的问题是,file_get_contents()是否可以安全地用于允许使用DOMPDF进行渲染(以及远程或本地?加载图像)?

这里有什么安全隐患?

回答

1

这里确实没有足够的信息来回答确定启用file_get_contents()在您的系统上是否安全。为此,我们必须知道系统上还有其他PHP应用程序和/或该功能是否在其他地方以及以何种方式使用。这就是说,如果你只考虑DOMPDF本身如何使用file_get_contents()你没有理由担心。 DOMPDF使用该函数来引入任何外部引用的文件(即css或图像)的内容。 DOMPDF明确了它如何处理任何内容,因此用户不应该因为内容是来自HTML文档的外部而不应该造成任何额外的伤害。

缺少利用file_get_contents()我不相信启用该函数会突然使DOMPDF不安全。典型的担忧是该功能的使用方式会使其容易受到恶意活动(如信息泄露攻击)的影响。这是DOMPDF过去容易受到的问题,已经解决了0.5.2(只要您的安全配置...例如,不要将DOMPDF_CHROOT设置为/)。

+0

感谢您指出。我们担心在我们的服务器上打开file_get_contents(),因为这会给黑客提供一种启动信息披露攻击的方式,正如您所提到的。我们打开该功能的唯一原因是能够在DOMPDF中使用图像。你需要更多信息吗? – Jorre 2012-03-07 15:42:48

+0

如果你没有在其他地方使用该功能,并且你正在使用dompdf 0.5.2或更高版本,那么我相信你应该没问题。如果您没有使用dompdf.php,您可以删除该文件以获得更高的安全性,因为这是早期版本dompdf中信息披露的来源。 – BrianS 2012-03-07 15:45:10

+0

感谢Brian,如果黑客可能试图在我们的服务器上尝试使用某种PHP shell进行访问后使用该功能,那该如何呢?我们并没有在其他地方使用这个功能,而是担心在我们的机器上打开这个功能 – Jorre 2012-03-08 08:01:59

相关问题