【问题标题】:Authenticity of uploaded pdf files上传的pdf文件的真实性
【发布时间】:2023-04-04 20:59:01
【问题描述】:

我的服务器必须只接受 pdf 文件。我正在使用 php 上传文件。目前,我正在检查文件是否以 %PDF 开头,以确保上传的文件确实是 pdf 文件。是否有其他检查以确保 100%(或至少非常强烈)它是一个 pdf 文件。恶意用户可以上传以 %PDF 开头的可执行文件吗?我会很感激任何帮助。

【问题讨论】:

  • 如果文件头是 %PDF,你可以假设你有一个 PDF 文件,如果 pdf 是恶意文件(意味着它利用阅读器执行任意代码)是另一回事
  • 您可以使用您选择的 PDF 库并尝试以 PDF 格式读取文件。如果失败,则不是正确的 PDF 文件(按照图书馆的条款)。

标签: php pdf file-upload security


【解决方案1】:

您可以使用 PECL FileInfo 扩展来检测 MIME 类型。 (但我怀疑,在内部,它只是做你已经在做的同样的事情。)或者,你可以使用FPDI 来查看你是否可以成功读取文件。不过,对于 PDF 文件,我认为嵌入式恶意软件比命名错误的可执行文件更令人担忧。每当您接受来自用户的上传时,最好通过 ClamAV 或类似方式运行文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    • 2011-12-08
    • 1970-01-01
    相关资源
    最近更新 更多