[pdf] ImageMagick 보안 정책 ‘PDF’차단 변환

Imagemagick 보안 정책은 pdf에서 png 로의 변환을 허용하지 않는 것 같습니다. 다른 확장자를 변환하는 것은 pdf가 아닌 작동하는 것 같습니다. 설치 한 이후로 imagemagick 설정을 변경하지 않았습니다 … OS가 중요한 경우 Arch Linux를 사용하고 있습니다.

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.



답변

글쎄, 나는 덧붙였다

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

직전 </policymap>/etc/ImageMagick-7/policy.xml하고는 있지만 확인하십시오의 보안 문제에 대해 다시 작동합니다.


답변

일부 의견에서 지적했듯이에서 ImageMagick의 정책을 편집해야합니다 /etc/ImageMagick-7/policy.xml. 보다 구체적으로, 작성 시점 (2019 년 1 월 5 일)의 ArchLinux에서 다음 행은 주석 처리되지 않습니다.

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

그냥 사이에 그것을 포장 <!--하고 -->그것을 언급하고, PDF 변환이 다시 작동합니다.


답변

내 아치 리눅스 시스템 에서이 줄은 이미 주석 처리되지 않았습니다. “없음”을 “읽기 | 쓰기”로 바꿔야 작동했습니다.


답변

이는 Ghostscript 9.24 ( source ) 에서 해결 된 보안 취약점으로 인한 것 입니다. 최신 버전 인 경우이 해결 방법이 더 이상 필요하지 않습니다. Ghostscript 6이 설치된 Ubuntu 19.10에서 이는 다음을 의미합니다.

  1. Ghostscript ≥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" />
    

답변

아치 리눅스에서 나를 위해 언급해야했습니다.

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


답변

우분투 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


답변

pdf 파일의 축소판을 만들지 못하는 nextcloud 에서이 문제가 발생했습니다.

그러나 제안 된 단계 중 어느 것도 나를 위해 문제를 해결하지 못했습니다.

결국 나는 그 이유를 찾았습니다. 허용 된 답변이 효과가 있었지만 policy.xml 파일을 편집 한 후 php-fpm을 다시 시작해야했습니다.

 sudo systemctl restart php7.2-fpm.service