Ich möchte ein Captcha-Bild erstellen, indem Sie convert
von ImageMagick verwenden.
Und ich folge this , aber es gibt einige Probleme.
Eingabe in meiner Linux-Shell:
convert -background white -fill black -font FreeSerif-Bold -pointsize 36 label:'adfgh' ./test.png
Der Fehler ist:
convert: nicht berechtigt
adfgh
@ error/const.c/ReadImage/453 ..__ Konvertieren: Es fehlt ein Dateiname./test.png
@ error/convert.c/ConvertImageCommand/3015
Mein ImageMagick: Version: 6.7.2-7, ich installiere es mit yum install ImageMagick
.
Ich habe keine Ahnung. Irgendwelche Ratschläge bitte?
Ich verwende ImageMagick in PHP (v.7.1), um die PDF -Datei in Bilder zu schneiden.
Zuerst bekam ich Fehler wie:
Ausnahmetyp: ImagickException
Ausnahmemeldung: nicht berechtigt ..... @ error/const.c/ReadImage/412
Nach einigen Änderungen in /etc/ImageMagick-6/policy.xml
bekomme ich Fehler wie:
Ausnahmetyp: ImagickException
Ausnahmemeldung: Temporäre Datei kann nicht erstellt werden ..... Berechtigung verweigert @ error/pdf.c/ReadPDFImage/465
Mein Fix:
In der Datei /etc/ImageMagick-6/policy.xml
(oder /etc/ImageMagick/policy.xml
)
kommentarzeile
<!-- <policy domain="coder" rights="none" pattern="MVG" /> -->
zeile wechseln
<policy domain="coder" rights="none" pattern="PDF" />
zu
<policy domain="coder" rights="read|write" pattern="PDF" />
zeile hinzufügen
<policy domain="coder" rights="read|write" pattern="LABEL" />
Dann neustarten Sie Ihren Webserver (nginx, Apache).
Ich verwende oft den ImageMagic-Befehl convert
, um *.tif
-Dateien in *.pdf
-Dateien zu konvertieren.
Ich weiß nicht warum, aber heute habe ich folgende Fehlermeldung erhalten:
convert: not authorized `a.pdf' @ error/constitute.c/WriteImage/1028.
Nach dem Ausgeben des Befehls:
convert a.tif a.pdf
Nachdem ich die obigen Antworten gelesen hatte, editierte ich die Datei /etc/ImageMagick-6/policy.xml
und änderte die Zeile:
policy domain="coder" rights="none" pattern="PDF"
zu
policy domain="coder" rights="read|write" pattern="PDF"
und jetzt funktioniert alles gut.
Ich habe "ImageMagick 6.8.9-9 Q16 x86_64 2018-09-28" Auf "Ubuntu 16.04.5 LTS".
Es gibt eine /etc/ImageMagick/policy.xml
-Datei, die von yum installiert wird. Es verbietet fast alles (aus Sicherheitsgründen und um Ihr System vor Überlastung mit ImageMagick-Aufrufen zu schützen).
Wenn Sie wie oben eine ReadImage
-Fehlermeldung erhalten, können Sie die Zeile wie folgt ändern:
<policy domain="coder" rights="read" pattern="LABEL" />
was sollte das Problem beheben.
Die Datei enthält eine Reihe von Dokumentationen, also sollten Sie diese lesen. Wenn Sie beispielsweise mehr Berechtigungen benötigen, können Sie sie wie folgt kombinieren:
<policy domain="coder" rights="read|write" pattern="LABEL" />
..., das dem Entfernen aller Berechtigungsprüfungen vorzuziehen ist (d. h. Löschen oder Kommentieren der Zeile).
Die Antwort mit den höchsten Stimmen (ich habe nicht genug Reputation, um dort einen Kommentar hinzuzufügen) schlägt vor, die MVG-Zeile zu kommentieren.
CVE-2016-3714
ImageMagick unterstützt ".svg/.mvg" -Dateien. Angreifer können Code in einer Skriptsprache erstellen, z. MSL (Magick Scripting Language) und MVG (Magick Vector Graphics) laden Sie es auf einen Server hoch verkleidet als Bilddatei und zwingt die Software zur Ausführung bösartiger Befehle auf der Serverseite wie oben beschrieben. Zum Beispiel das Hinzufügen der Befolgen Sie die Befehle in einer Datei und laden Sie sie auf einen Webserver hoch, der .__ verwendet. Eine anfällige ImageMagick-Version führt zur Ausführung des Befehls "ls -la" auf dem Server.
exploit.jpg:
Schieben Sie die Grafik-Kontext-Viewbox 0 0 640 480 füllen 'url ( https://website.com/image.png "| ls" -la) "Pop-Grafik-Kontext
Und
Jede Version unter 7.0.1-2 oder 6.9.4-0 ist potenziell anfällig und Betroffene sollten so schnell wie möglich auf den neuesten Stand ImageMagick-Version.
Wenn jemand nach der Installation einen Befehl ausführen muss, führen Sie dies aus!
sed -i 's/<policy domain="coder" rights="none" pattern="PDF" \/>/<policy domain="coder" rights="read|write" pattern="PDF" \/>/g' /etc/ImageMagick-6/policy.xml
Nach einem kürzlich erfolgten Update auf meinem Ubuntu 16.04-System habe ich auch diese Fehlermeldung erhalten, als ich versuche, convert auf .ps-Dateien auszuführen, um sie in pdfs zu konvertieren.
Dieses Update funktionierte für mich:
In einem Terminallauf:
Sudo gedit /etc/ImageMagick-6/policy.xml
Dadurch sollte die Datei policy.xml im Texteditor gedit geöffnet werden. Wenn dies nicht der Fall ist, wird Ihr Image-Magick möglicherweise an einem anderen Ort installiert. Dann ändern
rights="none"
zu
rights="read | write"
für PDF-, EPS- und PS-Zeilen am unteren Rand der Datei. Speichern und beenden und Image Magick sollte dann wieder funktionieren.
Löschen Sie einfach die Datei /etc/ImageMagick/policy.xml.
Ich hatte auch den fehler error/constitute.c/ReadImage/453
beim konvertieren eines eps in ein gif mit image magick. Ich habe die von sNICkerssss vorgeschlagene Lösung ausprobiert, hatte aber immer noch Fehler (obwohl sie sich von der ersten unterscheiden). E error/constitute.c/ReadImage/412
Das Problem wurde gelöst, indem read
an andere Einträge angehängt wurde
<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" />