Quiero crear un captcha pic mediante el uso convert de ImageMagick.

Y me siga este, pero hay algún problema .

Entrada En mi shell de linux:

convert -background white -fill black -font FreeSerif-Bold -pointsize 36 label:'adfgh' ./test.png

El Error es:

convertir:no autorizado adfgh @ error/constituyen.c/ReadImage/453.
convertir:falta una imagen de nombre de archivo ./test.png @
error/convertir.c/ConvertImageCommand/3015

Mi ImageMagick: Versión:6.7.2-7 , yo lo instale con yum install ImageMagick .

Estoy despistado. Algún consejo por favor?

  • Doble check policy.xml. Opciones de seguridad puede prevenir label: protocolo.
  • gracias! Puedo modificar el policy.xml, comentario esta línea» <política domain=»coder» derechos=»none» pattern=»LAEBL»> «. Que hace el trabajo ! Gracias !
  • Hola, Este trabajó para mí también. Muchas gracias. usted es un protector de la vida!
  • Donde es el policy.xml ?
  • /etc/ImageMagick/policy.xml
  • Gracias a todos! A mí me funcionó así. @jianwei, se debe agregar una respuesta. También, hay un pequeño error tipográfico en @jianwei de código debe comentar la siguiente línea: <policy domain="coder" rights="none" pattern="LABEL" />
  • /etc/ImageMagick-6/policy.xml
  • Para propósitos de depuración, también puede cambiar el nombre o eliminar el policy.xml archivo para quitar las restricciones de seguridad y ver qué efecto tiene en tu problema. identify -list policy comando muestra la política actual.

InformationsquelleAutor jianwei | 2017-03-21

8 Comentarios

  1. 380

    Nota: la solución en esta y otras respuestas implica la desactivación de las medidas de seguridad que existen para solucionar la ejecución de código arbitrario vulnerabilidades. Véase, por ejemplo, este ghostscript relacionados con la y este ubuntu relacionados con la anuncio. Sólo seguir adelante con estas soluciones si la entrada a convert proviene de una fuente de confianza.

    Puedo usar ImageMagick en php (v. 7.1) cortar el archivo PDF a imágenes.

    Primero tengo errores como:

    Tipo de excepción: ImagickException

    Mensaje de excepción: no está autorizado ….. @ error/constituyen.c/ReadImage/412

    Después de algunos cambios en /etc/ImageMagick-6/policy.xml que comience a recibir erroes como:

    Tipo de excepción: ImagickException

    Mensaje de excepción: no se puede crear el archivo temporal ….. Permiso denegado @ error/pdf.c/ReadPDFImage/465

    Mi revisión:

    Archivo /etc/ImageMagick-6/policy.xml (o /etc/ImageMagick/policy.xml)

    1. línea de comentario

      <!-- <policy domain="coder" rights="none" pattern="MVG" /> -->
    2. cambio de la línea de

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

      a

      <policy domain="coder" rights="read|write" pattern="PDF" />
    3. agregar una línea de

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

    Luego reiniciar su servidor web (nginx, apache).

    • Esta debe ser la respuesta aceptable si usted ha experimentado este problema en un cuadro de Ubuntu desde Octubre 4 de 2018. Otros problemas de otras distribuciones?
    • Yo también soy acaba de llegar este problema hoy en Ubuntu 16.04. Hizo algo de cambio? También no tenía la necesidad de añadir la ETIQUETA de la línea, acaba de cambiar los derechos de PDF de «ninguno» a «leer».
    • Resuelve un problema en mi Ubuntu 18.04.1 LTS cuadro
    • En mi servidor, el policy.xml archivo actualizado por última vez el 29 de Septiembre, pero los problemas sólo surgen en la actualidad. Estoy usando ubuntu server 14.04.5, pero el conjunto de la actualización automática. En apt de registro, que he encontrado acerca de esta actualización: imagemagick-common:amd64 (6.7.7.10-6ubuntu3.12, 6.7.7.10-6ubuntu3.13),
    • aquí es el relacionado con la changelog: launchpad.net/ubuntu/+fuente/imagemagick/8:6.7.7.10-6ubuntu3.13
    • Solución probada en Laravel Forjar env, si su spatie pdf consiguió en el error «ImagickException: no autorizados», entonces esta es la solución
    • No te olvides de reiniciar php-fpm así sudo systemctl restart php7.2-fpm o cualquier versión que tengas
    • A mí me funcionó. Pero he comprobado CVE-2016-3714 respuesta de @Nikolay Ivanov, así que he dejado la «MVG» comentario de mi configuración, y todavía se trabajó, ya estoy usando Imagick sólo para la conversión a PDF.
    • Puede alguien explicar qué domain=»coder» se refiere a? He hecho los cambios antes mencionados y esto hace que el problema fijo cuando un usuario carga una imagen para la conversión. Mi sitio está ejecutando en Laravel forge y estoy usando un Redis cola para completar la imagen de las conversiones. Con esta configuración, a continuación, la única manera de hacerlo funcionar es para comentar o quitar el PDF/ETIQUETA de líneas. Supongo que esto es debido a que este se ejecute por un sistema de nivel de usuario. Puede domain=»??» se puso a trabajar para cron/usuarios del sistema?
    • Mi problema es que este archivo de política sólo puede ser editado por el superusuario. Hay alguna forma de control de la política a nivel local? Algo así como ~/.imagemagick/policy.xml
    • Para el uso en línea de comandos, por ejemplo,convert 1.png 2.png out.pdf, el único cambio que necesita es <policy domain="coder" rights="read|write" pattern="PDF" />.
    • En ubuntu 18.04 yo sólo comentar las líneas debajo de la línea: <!-- disable ghostscript format types --> y el trabajo.
    • Esta solucionado el problema para mí en Linux Mint 18.3.
    • No hacer esto. Esta restricción ha sido introducido como una medida de seguridad debido a la posible ejecución remota de código (ver launchpad.net/ubuntu/+fuente/imagemagick/8:6.7.7.10-6ubuntu3.13). Así que la respuesta correcta es: se debe utilizar otro programa para esta tarea.
    • Asegúrese de actualizar ghostscript kb.cert.org/vuls/id/332928
    • No es necesario reiniciar el servidor web – ImageMagick es un servicio independiente.
    • excelente revisión. Gracias !
    • La cosa más importante es: ¿Son las nuevas medidas de seguridad introducidas en el paquete ImageMagick permanente o sólo es una revisión y una solución adecuada que sirva tanto para solucionar el problema de seguridad y no de choque de la corriente de terceros secuencias de comandos está previsto para ser implementado en el futuro? Me pregunto porque he instalado la versión más reciente de ImageMagick 7 y yo creo que mis scripts ya no se bloqueará de nuevo sin la fijación de nada en el archivo de política.

  2. 132

    Yo uso muchas veces el ImageMagic convert comando para convertir *.tif archivos a *.pdf archivos.

    No sé por qué, pero hoy me empezó a recibir el siguiente mensaje de error:

    convert: not authorized `a.pdf' @ error/constitute.c/WriteImage/1028.
    

    Después de emitir el comando:

    convert a.tif a.pdf
    

    Después de leer las respuestas anteriores he editado el archivo /etc/ImageMagick-6/policy.xml

    y cambiar la línea:

    policy domain="coder" rights="none" pattern="PDF" 
    

    a

    policy domain="coder" rights="read|write" pattern="PDF"
    

    y ahora todo funciona bien.

    Tengo «ImageMagick 6.8.9-9 P16 x86_64 2018-09-28»
    en «Ubuntu 16.04.5 LTS».

    • Estoy en openSuse Salto 15.0 y se utiliza «comparar» para comparar las páginas en PDF, mismo error, aún después de una actualización de openSuse el 10 de octubre de 2018. Después de cambiar la línea como se describe aquí, se trabajó.
    • Estoy en Ubuntu Xenial 16.04 LTS y de repente empecé a ver que error en los logs de Apache. Confirmo que después de cambiar la política, como se describe aquí el problema fue resuelto.
    • Esta es la mínima respuesta correcta – sNICkerssss la respuesta es técnicamente correcto, sin embargo, sólo es un paso necesario para la línea de comandos de uso de convert a PDF.
    • Este «problema» es rápido&sucio «arreglar» a Ghostscript funcionalidad, en el largo plazo, debemos encontrar reemplazo para Ghostscript (y probablemente ImageMagick).
    • No hacer esto. Esta restricción ha sido introducido como una medida de seguridad debido a la posible ejecución remota de código (ver launchpad.net/ubuntu/+fuente/imagemagick/8:6.7.7.10-6ubuntu3.13). Así que la respuesta correcta es: se debe utilizar otro programa para esta tarea.
    • Asegúrese de actualizar ghostscript kb.cert.org/vuls/id/332928

  3. 52

    Hay un /etc/ImageMagick/policy.xml archivo que se instala yum. Que no permite casi todo (por seguridad y para proteger su sistema de conseguir sobrecargado con ImageMagick llamadas).

    Si usted está recibiendo un ReadImage de error como el anterior, se puede cambiar la línea a:

    <policy domain="coder" rights="read" pattern="LABEL" />
    

    que debería solucionar el problema.

    El archivo tiene un montón de documentación, de modo que usted debería leer. Por ejemplo, si usted necesita más permisos, puedes combinarlos como:

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

    …lo cual es preferible a la eliminación de todas las comprobaciones de permisos (es decir, eliminar o comentar la línea).

    • No hacer esto. Esta restricción ha sido introducido como una medida de seguridad debido a la posible ejecución remota de código (ver launchpad.net/ubuntu/+fuente/imagemagick/8:6.7.7.10-6ubuntu3.13). Así que la respuesta correcta es: se debe utilizar otro programa para esta tarea.
    • Asegúrese de actualizar ghostscript kb.cert.org/vuls/id/332928
    • Utilizando otro programa, no es útil – el OP le preguntó específicamente acerca de ImageMagick. La respuesta debe ser «Usted debe saber lo que están haciendo, lo hace bajo su propio riesgo, asegúrese de que el sistema es seguro, aquí es la razón por la que no debería, y aquí está cómo hacerlo».
    • El OP (y la gente aquí por búsqueda en la web, incluyéndome a mí) se han de usar ImageMagick hasta ahora; así que, por supuesto, su primer intento en la solución de este problema es encontrar una solución con ImageMagick, debido a que requiere la menor cantidad de cambios. Eso no significa que incondicionalmente desea usar ImageMagick.
  4. 24

    Si alguien necesita hacerlo con un comando después de la instalación, ejecute este !

    sed -i 's/<policy domain="coder" rights="none" pattern="PDF" \/>/<policy domain="coder" rights="read|write" pattern="PDF" \/>/g' /etc/ImageMagick-6/policy.xml
    
    • Más corto: sed -i 's/\(<policy domain="coder" rights=\)"none" \(pattern="PDF" \/>\)/\1"read|write"\2/g' /etc/ImageMagick-6/policy.xml
    • era fácil editar manualmente.
    • Más conciso. Y sudo es necesario para editar un archivo dentro de /etc sudo sed -i '/PDF/s/none/read|write/' /etc/ImageMagick-6/policy.xml
    • asegúrese de actualizar ghostscript kb.cert.org/vuls/id/332928
  5. 23

    La respuesta con mayor votos (no tengo la suficiente reputación para agregar un comentario allí) sugiere comentar las MVG línea, pero tengan en cuenta esto:

    CVE-2016-3714

    ImageMagick apoya «.svg/.mvg» los archivos que significa que los atacantes pueden
    artesanía de código en un lenguaje de secuencias de comandos, por ejemplo, MSL (la Magia de secuencias de comandos
    El lenguaje) y MVG (la Magia de Gráficos Vectoriales), subirlo a un servidor
    disfrazado como un archivo de imagen y la fuerza de la ejecución de software malicioso
    comandos del lado del servidor como se describió anteriormente. Por ejemplo, la adición de la
    los siguientes comandos en un archivo y subirlo a un servidor web que utiliza
    un vulnerables ImageMagick versión será el resultado de ejecutar el comando
    «ls-la» en el servidor.

    exploit.jpg:

    de inserción de gráficos contexto viewbox 0 0 640 480 llenar
    ‘la dirección url(https://website.com/image.png«|ls «-la)’ pop gráfico-contexto

    Y

    Cualquier versión 7.0.1-2 o 6.9.4-0 es potencialmente vulnerable y
    las partes afectadas debe, tan pronto como sea posible actualizar a la última
    ImageMagick versión.

    Fuente

    • Yo no comente MVG y PDF -> JPG conversión todavía funciona. Gracias.
    • 6.7.7-10 parece, como en la versión más reciente, publicado 9/28/2018). Lo que me estoy perdiendo? $convert --version Version: ImageMagick 6.7.7-10 2018-09-28 Q16 http://www.imagemagick.org
    • hay una versión más reciente imagemagick.org/script/download.php Probablemente su distribución de Linux utiliza a los mayores. Ubuntu 16.04 utiliza actualmente 6.8.9-9
    • Bien, así que la solución adecuada para el equipo de Ubuntu sería la actualización de imagemagick a la versión más reciente, para no romper la ya existente.
    • No. Ubuntu es una función de congelación de distribución y no de la nave aguas arriba de las versiones más recientes.
    • asegúrese de actualizar ghostscript kb.cert.org/vuls/id/332928

  6. 13

    Después de una actualización reciente en mi Ubuntu 16.04 sistema también he empezado a llegar este mensaje de error al intentar ejecutar convertir en .ps archivos para convertirlos en archivos pdf.

    Esta solución ha funcionado para mí:

    En una terminal ejecutar:

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

    Esto debe abrir la policy.xml archivo en el editor de texto gedit. Si no, la imagen que la magia puede ser instalado en un lugar diferente.
    A continuación, cambie

    rights="none" 
    

    a

    rights="read | write" 
    

    para PDF, EPS y PS líneas cerca de la parte inferior del archivo. Guardar y salir, y la imagen de la magia volverá a funcionar.

  7. 7

    Sólo eliminar /etc/ImageMagick/policy.xml archivo.

    • sencillo pero perfecto. hice esto como la prueba está fallando en travis
    • Esta es la única solución que trabajó de toneladas de puestos. Yo le cambió el nombre a policy-disabled.xml. Creo que voy a restaurar hasta que estoy seguro de que la seguridad se abordan los temas de
  8. 0

    También tuve el error error/constitute.c/ReadImage/453 al intentar convertir una eps a un gif con la imagen de la magia. He probado la solución propuesta por sNICkerssss pero todavía tenía errores (aunque diferente de la primera)e error/constitute.c/ReadImage/412
    Lo que resolvió el problema fue poner read a otras entradas

     <policy domain="coder" rights="read" pattern="PS" />
     <policy domain="coder" rights="read" pattern="EPS" />
     <policy domain="coder" rights="read" pattern="PDF" />
     <policy domain="coder" rights="read" pattern="XPS" />
     <policy domain="coder" rights="read|write" pattern="LABEL" />
    
    • Esto en realidad no responder a la pregunta. Si usted tiene una pregunta, puede solicitar al hacer clic Pregunta. También puede añadir una recompensa para atraer más atención a esta cuestión una vez que usted tiene suficiente la reputación. – De Revisión
    • Gracias por la sugerencia. He editado mi respuesta en el ínterin. De todos modos yo realmente sentía que debería haber sido un comentario sobre sNICkerssss respuesta, pero ya que no puedo agregar es la mejor manera que se me ocurrió
    • es una respuesta, el pensamiento pobre debido a que las copias de las otras respuestas.
    • mi comentario fue desde antes de la edición. stackoverflow.com/posts/52700739/revisions

Dejar respuesta

Please enter your comment!
Please enter your name here