Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

552
Vistas
Política de seguridad de ImageMagick 'PDF' que bloquea la conversión

La política de seguridad de Imagemagick parece no permitirme realizar esta conversión de pdf a png. La conversión de otras extensiones parece estar funcionando, pero no desde pdf. No he cambiado ninguna de las configuraciones de imagemagick desde que lo instalé... Estoy usando Arch Linux, si el sistema operativo es importante.

 user@machine $ convert -density 300 -depth 8 -quality 90 input.pdf output.png convert: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408. convert: no images defined `output.png' @ error/convert.c/ConvertImageCommand/3288.
over 4 years ago · Santiago Trujillo
13 Respuestas
Responde la pregunta

0

Bueno, agregué

 <policy domain="coder" rights="read | write" pattern="PDF" />

justo antes de </policymap> en /etc/ImageMagick-7/policy.xml y eso hace que funcione de nuevo, pero no estoy seguro de las implicaciones de seguridad de eso.

over 4 years ago · Santiago Trujillo Denunciar

0

Como se señaló en algunos comentarios, debe editar las políticas de ImageMagick en /etc/ImageMagick-7/policy.xml . Más particularmente, en ArchLinux al momento de escribir (01/05/2019) la siguiente línea no está comentada:

 <policy domain="coder" rights="none" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" />

Simplemente envuélvalo entre <!-- y --> para comentarlo, y la conversión de PDF debería funcionar nuevamente.

over 4 years ago · Santiago Trujillo Denunciar

0

Para mí, en mi sistema archlinux, la línea ya no estaba comentada. Tuve que reemplazar "ninguno" por "leer | escribir" para que funcionara.

over 4 years ago · Santiago Trujillo Denunciar

0

Para mí en Arch Linux, tuve que comentar esto:

 <policy domain="delegate" rights="none" pattern="gs" />
over 4 years ago · Santiago Trujillo Denunciar

0

En Ubuntu 19.10, hice esto en /etc/ImageMagick-6/policy.xml

descomentar esto

 <policy domain="module" rights="read | write" pattern="{PS,PDF,XPS}" />

y comenta esto

 <!-- <policy domain="coder" rights="none" pattern="PDF" /> -->

Después de eso, este comando funciona sin errores.

 convert -thumbnail x300 -background white -alpha remove sample.pdf sample.png
over 4 years ago · Santiago Trujillo Denunciar

0

Estaba experimentando este problema con nextcloud que no podía crear miniaturas para archivos pdf.

Sin embargo, ninguno de los pasos sugeridos resolvería el problema para mí.

Eventualmente encontré la razón: la respuesta aceptada funcionó, pero también tuve que reiniciar php-fpm después de editar el archivo policy.xml:

 sudo systemctl restart php7.2-fpm.service
over 4 years ago · Santiago Trujillo Denunciar

0

Este problema es una solución para una vulnerabilidad de seguridad. La vulnerabilidad se ha solucionado en Ghostscript 9.24 ( fuente ), por lo que si tiene esa versión o una más nueva, ya no necesita la solución alternativa.

En Ubuntu 19.10 a 21.04 y probablemente en cualquier versión posterior que venga con ImageMagick 6, así es como soluciona el problema eliminando la solución alternativa:

  1. Asegúrese de tener Ghostscript ≥9.24:

     gs --version
  2. En caso afirmativo, simplemente elimine toda la siguiente sección de /etc/ImageMagick-6/policy.xml :

     <!-- disable ghostscript format types --> <policy domain="coder" rights="none" pattern="PS" /> <policy domain="coder" rights="none" pattern="PS2" /> <policy domain="coder" rights="none" pattern="PS3" /> <policy domain="coder" rights="none" pattern="EPS" /> <policy domain="coder" rights="none" pattern="PDF" /> <policy domain="coder" rights="none" pattern="XPS" />
over 4 years ago · Santiago Trujillo Denunciar

0

Funciona en Ubuntu 20.04

Agregue esta línea dentro de <policymap>

 <policy domain="module" rights="read|write" pattern="{PS,PDF,XPS}" />

Comenta estas líneas:

 <!-- <policy domain="coder" rights="none" pattern="PS" /> <policy domain="coder" rights="none" pattern="PS2" /> <policy domain="coder" rights="none" pattern="PS3" /> <policy domain="coder" rights="none" pattern="EPS" /> <policy domain="coder" rights="none" pattern="PDF" /> <policy domain="coder" rights="none" pattern="XPS" /> -->
over 4 years ago · Santiago Trujillo Denunciar

0

Agregando a la respuesta de Stefan Seidel.

Bueno, al menos en Ubuntu 20.04.2 LTS o tal vez en otras versiones, no puedes editar el archivo policy.xml directamente de forma GUI. Aquí hay una forma de terminal para editarlo.

  1. Abra el archivo policy.xml en la terminal ingresando este comando:

    sudo nano /etc/ImageMagick-6/policy.xml

  2. Ahora, edite directamente el archivo en la terminal, busque <policy domain="coder" rights="none" pattern="PDF" /> y reemplace none con read|write como se muestra en la imagen. Luego presione Ctrl+X para salir.

Editar en la terminal

over 4 years ago · Santiago Trujillo Denunciar

0

El cambio de ImageMagick se mantuvo después de que se corrigió Ghostscript porque las aplicaciones (especialmente las aplicaciones web) a menudo envían archivos arbitrarios proporcionados por el usuario a ImageMagick, no siempre aplican las restricciones de formato correctamente y, dado que Postscript (que usa PDF) es una programación completa lenguaje que se ejecuta en una caja de arena, siempre existe la posibilidad de otro agujero en la caja de arena.

Es mucho mejor dejar las cosas configuradas para que ImageMagick se niegue a procesar archivos que requieran la ejecución de un programa y, en su lugar, simplemente invoque Ghostscript directamente cuando quiera permitir la renderización de Postscript.

Eso se lograría con un comando de Ghostscript como este:

 gs -dSAFER -r600 -sDEVICE=pngalpha -o foo.png myfile.pdf

Sí, esta es una variación del comando de GhostScript que llama ImageMagic. (ver delegates.xml de ImageMagick. -o es la abreviatura de -dBATCH -dNOPAUSE -sOutputFile= )

Lo importante es que ImageMagick permanece bloqueado, no invocas innecesariamente un programa intermedio y obtienes más control sobre los parámetros de renderizado. (por ejemplo, -r600 es el DPI para renderizar y cambiar -sDEVICE=pngalpha le permite renderizar directamente al formato deseado)

over 4 years ago · Santiago Trujillo Denunciar

0

Mánjaro Abril 2021

Simplemente elimine la línea sin comentarios dentro de <policymap> en /etc/ImageMagick-7/policy.xml

over 4 years ago · Santiago Trujillo Denunciar

0

Como comentario muy activo de @Richard Kiefer, una solución simple es así

 $ sudo sed -i '/disable ghostscript format types/,+6d' /etc/ImageMagick-6/policy.xml
over 4 years ago · Santiago Trujillo Denunciar

0

En mi caso estoy usando ubuntu 20.10 y el Imagick-7.

en mi /etc/ImageMagick-6/policy.xml eliminé las siguientes líneas, reinicié mi máquina y listo.

 <policy domain="coder" rights="none" pattern="PS" /> <policy domain="coder" rights="none" pattern="PS2" /> <policy domain="coder" rights="none" pattern="PS3" /> <policy domain="coder" rights="none" pattern="EPS" /> <policy domain="coder" rights="none" pattern="PDF" /> <policy domain="coder" rights="none" pattern="XPS" />
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda