代码之家  ›  专栏  ›  技术社区  ›  Christoph Schiessl Joeyjoejoejr

使用-dSAFER从Ghostscript命令访问文件

  •  0
  • Christoph Schiessl Joeyjoejoejr  · 技术社区  · 7 年前

    我正试着写一些 gs -dSAFER ,以确保至少达到基本的安全水平。

    -德萨费尔 似乎与某些 gs 命令。以以下命令为例:

    # count number of pages in PDF
    gs -dQUIET -dBATCH -dNOPAUSE -dNOSAFER -dNODISPLAY \
       -c "(input.pdf) (r) file runpdfbegin pdfpagecount = quit"
    

    如何使用重新编写此命令 -德萨费尔 -德萨费尔 因为 gs input.pdf (这正是我所期望的)。我怎么说 gs 那是允许阅读的 input.pdf


    # convert JPEG to single-page PDF
    gs -dQUIET -dBATCH -dNOPAUSE -dNOSAFER \
       -sDEVICE=pdfwrite -dCompatibilityLevel=1.5 -dPDFSettings=/printer \
       -sColorConversionStrategy=Gray -dProcessColorModel=/DeviceGray \
       -sOutputFile=output.pdf \
       viewjpeg.ps \
       -c "(input.jpg) << /PageSize 2 index viewJPEGgetsize 2 array astore >> setpagedevice viewJPEG"
    

    此命令与第一个命令的问题完全相同。我该如何重新编写这个 -德萨费尔


    如果您认为,请在您的答案中包含相关文档的链接 -德萨费尔 我的命令真的不需要。

    1 回复  |  直到 7 年前
        1
  •  1
  •   KenS    7 年前

    您可以使用将目录添加到搜索列表中 -I ,IIRC允许读取任何此类目录。对于当前目录,您还可以使用 -P- -P

    请参见ghostpdl/doc目录中的Use.htm。

    但是,即使添加当前目录允许您读取该文件,也会很快停止使用-dSAFER。有一个正在进行的项目,在必要时“强化”口译员 -dSAFER 如果有可能的话,它们可能会被误用。

    简单地说,您建议的用法与 . 您正在使用的命令几乎肯定会被明确禁止,因为它们本质上是不安全的。基本上,通过在PDF文件中乱搞,你的 后记 程序是不安全的。

    知道您的PostScript程序是安全的,因为您没有执行PDF的任何部分,所以PDF也是安全的。PDF只有在您试图实际执行内容时才是不安全的,而您的程序却没有这样做。它只是打开文件,读取页面树,并告诉您与Count键关联的值。

    所以你不需要设置 -德萨费尔 无论如何,在这个特定的例子中。但是,任何执行PDF内容的程序(例如,通过呈现PDF内容的任何部分,或将其发送到pdfwrite设备)都是不安全的。

    第二个示例也不需要更安全,因为JPEG不能包含访问磁盘的代码。

    推荐文章