ImageMagick सुरक्षा नीति 'पीडीएफ' अवरुद्ध रूपांतरण


176

Imagemagick सुरक्षा नीति मुझे pdf से png में इस रूपांतरण को करने की अनुमति नहीं दे रही है। परिवर्तित अन्य एक्सटेंशन काम कर रहे हैं, बस पीडीएफ से नहीं। जब से मैंने इसे स्थापित किया है, तब से मैंने किसी भी इमेजमाजिक सेटिंग्स को नहीं बदला है ... अगर ओएस मायने रखता है, तो मैं आर्क लिनक्स का उपयोग कर रहा हूं।

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.

जवाबों:


214

खैर, मैंने जोड़ा

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

बस से पहले </policymap>में /etc/ImageMagick-7/policy.xmlऔर है कि यह फिर से काम करते हैं, लेकिन लगता है कि की सुरक्षा के प्रभाव के बारे में नहीं आता है।


3
मेरा मानना ​​है कि घोस्टस्क्रिप्ट में एक बग के कारण पीडीएफ नीति को जोड़ा गया था, जो मुझे लगता है कि अब तय हो गया है। तो यह आप वर्तमान घोस्टस्क्रिप्ट का उपयोग कर रहे हैं, तो आपको इस पॉलिसी को पढ़ने के लिए ठीक होना चाहिए। राइट्स लिखें।
fmw42

30
मैंने लाइन पाई <policy domain="coder" rights="none" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" />और इसे काम करने के लिए बस अनियंत्रित कर दिया।
जकोब-आर r

8
सुरक्षा भेद्यता जो नीति को लागू करने के लिए वितरण का कारण बनती है, यहां संदर्भित है: kb.cert.org/vuls/id/332928
जेसन सिफकेन

17
@ jakob-r: मुझे लगता है कि आपने इसे टिप्पणी दी थी ... ;-)
एस्ट्रोफ्लोयड


98

जैसा कि कुछ टिप्पणियों में बताया गया है, आपको ImageMagick की नीतियों को संपादित करने की आवश्यकता है /etc/ImageMagick-7/policy.xml। अधिक विशेष रूप से, ArchLinux में लेखन के समय (05/01/2019) निम्नलिखित पंक्ति अनियोजित है:

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

बस इसे <!--और -->टिप्पणी के बीच लपेटो , और पीडीएफ रूपांतरण फिर से काम करना चाहिए।


1
सुनिश्चित करें कि भूत की तारीख kb.cert.org/vuls/id/332928
ykay का कहना है कि मोनिका

6
इस कार्यक्षमता का क्या मतलब है? उपयोगकर्ताओं को PDF बनाने से रोकने के लिए?
सीमित प्रायश्चित

6
आंशिक रूप से, हाँ। जैसा कि ImageMagick का उपयोग अक्सर वेबसाइटों द्वारा अपलोड की गई फ़ाइलों को संसाधित करने के लिए किया जाता है - और पीडीएफ उन फ़ाइल स्वरूपों में से एक है जो मूल रूप से किसी भी निष्पादन योग्य कोड को शामिल कर सकते हैं - अपलोड अनुमतियों वाले कोई भी व्यक्ति किसी भी कार्य को कर सकता है जो आपके वेब उपयोगकर्ता के पास है। अगर कोई आपको व्यक्तिगत रूप से दुर्भावनापूर्ण पीडीएफ को किसी अन्य प्रारूप में परिवर्तित करने के लिए ट्रिक करता है।
डीआर

28

मेरे लिए मेरे आर्च्लिनक्स सिस्टम पर लाइन पहले से ही अनियंत्रित थी। मुझे इसे काम करने के लिए "पढ़ो | लिखो" द्वारा "कोई नहीं" बदलना पड़ा।


सुनिश्चित करें कि भूत की तारीख kb.cert.org/vuls/id/332928
ykay का कहना है कि मोनिका

वही। मैं अप टू डेट btw हूं।
युकशिमा हक्साय

25

यह एक सुरक्षा भेद्यता के कारण है जिसे घोस्टस्क्रिप्ट 9.24 ( स्रोत ) में संबोधित किया गया है । यदि आपके पास एक नया संस्करण है, तो आपको इस समाधान की आवश्यकता नहीं है। घोस्टस्क्रिप्ट 6 के साथ उबंटू 19.10 पर, इसका मतलब है:

  1. सुनिश्चित करें कि आपके पास घोस्टस्क्रिप्ट ≥9.24 है:

    gs --version
    
  2. यदि हाँ, तो बस निम्नलिखित से पूरा खंड हटा दें /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" />
    

केवल वही तय करें जो मेरे लिए Ubuntu 19.04 पर gs 9.26 के साथ काम किया।
मैनुअल

2
sed -i '/disable ghostscript format types/,+6d' /etc/ImageMagick-6/policy.xmlमेरे लिए ठीक काम किया।
रिचर्ड कीफर

1
उबंटू 20.04 के लिए काम किया
एलेक्स के।

21

मेरे लिए आर्च लाइनक्स पर मुझे टिप्पणी करनी थी:

  <policy domain="delegate" rights="none" pattern="gs" />

मेरे सिस्टम पर, दो policy.xml फाइलें थीं: /etc/ImageMagick-6/policy.xmlऔर /etc/ImageMagick-7/policy.xml। सही को संपादित करने के लिए ध्यान रखना!
सिल्वेनबी

4

उबंटू 19.10 पर, मैंने इसे /etc/ImageMagick-6/policy.xml में किया है

इस पर असहजता

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

और यह टिप्पणी करें

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

उसके बाद, यह कमांड बिना त्रुटि के काम करता है

convert -thumbnail x300 -background white -alpha remove sample.pdf sample.png 

0

मैं इस मुद्दे को नेक्लाउड के साथ अनुभव कर रहा था जो कि पीडीएफ फाइलों के लिए थंबनेल बनाने में विफल होगा।

हालांकि, सुझाए गए कदमों में से कोई भी मेरे लिए समस्या का समाधान नहीं करेगा।

आखिरकार मुझे इसका कारण मिल गया: स्वीकार किए गए उत्तर ने काम किया लेकिन मुझे पॉलिसी संपादित करने के बाद php-fpm को भी पुनः आरंभ करना पड़ा। xml फ़ाइल:

 sudo systemctl restart php7.2-fpm.service
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.