imagemagick - write - convertir: no autorizado `aaaa` @ error/constitutivo.c/ReadImage/453
error constitute c writeimage 1037 (8)
Quiero crear una imagen de captcha mediante el uso de
convert
de ImageMagick.
Y sigo this , 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 / constitut.c / ReadImage / 453. convertir: falta un nombre de archivo de imagen./test.png
@ error / convert.c / ConvertImageCommand / 3015
My ImageMagick: Versión: 6.7.2-7, lo instalo con
yum install ImageMagick
.
No tengo ni idea. ¿Algún consejo por favor?
Nota: la solución en esta y otras respuestas implica deshabilitar las medidas de seguridad que existen para corregir vulnerabilidades de ejecución de código arbitrario. Vea, por ejemplo, este anuncio relacionado con ghostscript y este anuncio relacionado con ubuntu . Solo avance con estas soluciones si la entrada para
convert
proviene de una fuente confiable.
Utilizo ImageMagick en php (v.7.1) para cortar archivos PDF en imágenes.
Primero obtuve errores como:
Tipo de excepción: ImagickException
Mensaje de excepción: no autorizado ..... @ error / constitut.c / ReadImage / 412
Después de algunos cambios en
/etc/ImageMagick-6/policy.xml
empiezo a tener errores 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 solución :
En el archivo
/etc/ImageMagick-6/policy.xml
(o
/etc/ImageMagick/policy.xml
)
-
línea de comentarios
<!-- <policy domain="coder" rights="none" pattern="MVG" /> -->
-
cambio de linea
<policy domain="coder" rights="none" pattern="PDF" />
a
<policy domain="coder" rights="read|write" pattern="PDF" />
-
añadir línea
<policy domain="coder" rights="read|write" pattern="LABEL" />
Luego reinicie su servidor web (nginx, apache).
Después de una actualización reciente en mi sistema Ubuntu 16.04, también comencé a recibir este error al intentar ejecutar convertir en archivos .ps para convertirlos en archivos PDF.
Esta solución funcionó para mí:
En una ejecución de terminal:
sudo gedit /etc/ImageMagick-6/policy.xml
Esto debería abrir el archivo policy.xml en el editor de texto gedit. Si no es así, su imagen mágica podría estar instalada en un lugar diferente. Entonces cambia
rights="none"
a
rights="read | write"
para líneas PDF, EPS y PS cerca del final del archivo. Guardar y salir, y la magia de la imagen debería funcionar nuevamente.
Hay un archivo
/etc/ImageMagick/policy.xml
instalado por yum.
No permite casi todo (por seguridad y para proteger su sistema de una sobrecarga de llamadas con ImageMagick).
Si obtiene un error de
ReadImage
como el anterior, puede cambiar la línea a:
<policy domain="coder" rights="read" pattern="LABEL" />
lo que debería solucionar el problema.
El archivo tiene un montón de documentación, así que deberías leerlo. Por ejemplo, si necesita más permisos, puede combinarlos como:
<policy domain="coder" rights="read|write" pattern="LABEL" />
... que es preferible a eliminar todas las verificaciones de permisos (es decir, eliminar o comentar la línea).
La respuesta con los votos más altos (no tengo suficiente reputación para agregar comentarios allí) sugiere comentar la línea de MVG, pero tenga esto en cuenta:
CVE-2016-3714
ImageMagick admite archivos ".svg / .mvg", lo que significa que los atacantes pueden crear código en un lenguaje de script, por ejemplo, MSL (Magick Scripting Language) y MVG (Magick Vector Graphics), subirlo a un servidor disfrazado como un archivo de imagen y forzar el software para ejecutar comandos maliciosos en el lado del servidor como se describe anteriormente. Por ejemplo, al agregar los siguientes comandos en un archivo y cargarlo en un servidor web que utiliza una versión vulnerable de ImageMagick, se ejecutará el comando "ls -la" en el servidor.
exploit.jpg:
push viewbox de contexto gráfico 0 0 640 480 fill ''url ( https://website.com/image.png "| ls" -la)'' pop graphic-context
Y
Cualquier versión por debajo de 7.0.1-2 o 6.9.4-0 es potencialmente vulnerable y las partes afectadas deben actualizar lo antes posible a la última versión de ImageMagick.
Si alguien necesita hacerlo con un comando después de la instalación, ejecute esto.
sed -i ''s/<policy domain="coder" rights="none" pattern="PDF" //>/<policy domain="coder" rights="read|write" pattern="PDF" //>/g'' /etc/ImageMagick-6/policy.xml
Simplemente elimine el archivo /etc/ImageMagick/policy.xml.
También tuve el error de
error/constitute.c/ReadImage/453
al intentar convertir un eps a un gif con magia de imagen.
Probé la solución propuesta por sNICkerssss pero aún tenía errores (aunque diferentes al primero) e
error/constitute.c/ReadImage/412
Lo que resolvió el problema fue
read
en 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" />
Uso muchas veces el comando de
convert
ImageMagic para convertir archivos
*.tif
archivos
*.pdf
.
No sé por qué, pero hoy comencé a recibir el siguiente 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,
/etc/ImageMagick-6/policy.xml
el archivo
/etc/ImageMagick-6/policy.xml
y cambió 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 Q16 x86_64 2018-09-28" en "Ubuntu 16.04.5 LTS".