⚠️ Ini adalah situs terjemahan tidak resmi dan tidak berafiliasi dengan ImageMagick Studio LLC. Untuk informasi resmi, lihat halaman asli (https://imagemagick.org/security-policy/).

Kebijakan keamanan • Contoh kebijakan keamanan • Kebijakan sinkronisasi cache piksel • Kebijakan keamanan zero-configuration • Pertimbangan keamanan lainnya

Sangat disarankan untuk menetapkan kebijakan keamanan yang sesuai dengan lingkungan lokal Anda sebelum menggunakan ImageMagick. Model keamanan ImageMagick adalah “semua diizinkan kecuali ditolak”, dan kebijakan yang cocok terakhir yang berlaku. Berhati-hatilah saat menambahkan aturan baru: kebijakan yang lebih baru dapat menimpa penolakan atau izin sebelumnya. Tempatkan aturan penolakan yang luas terlebih dahulu, diikuti oleh pengecualian yang spesifik, dan tinjau urutannya untuk menghindari otorisasi yang tidak disengaja.

ImageMagick sengaja bersifat terbuka (open) secara default, dan pilihan desain ini mencerminkan penggunaan utamanya di lingkungan yang terkendali, seperti container Docker atau deployment yang di-sandbox (sandboxed) lainnya.

ImageMagick adalah alat yang memungkinkan Anda memanipulasi gambar. Meskipun menawarkan berbagai fitur dan kemampuan, sering kali ada trade-off antara keamanan dan kenyamanan. Untuk memastikan keamanan optimal, Anda dapat membatasi ImageMagick agar hanya membaca atau menulis format gambar yang aman untuk web (web-safe) seperti GIF, JPEG, dan PNG. Sebagai alternatif, Anda dapat menyesuaikan kebijakan keamanan agar sesuai dengan kebutuhan lingkungan lokal atau kebijakan organisasi Anda. Kebijakan ini dapat mencakup detail seperti batas penggunaan memori, path yang diizinkan untuk membaca dan menulis, batas jumlah gambar dalam sebuah urutan (sequence), durasi maksimum alur kerja, ruang disk yang diizinkan untuk piksel gambar, passphrase rahasia untuk koneksi jarak jauh, serta coder mana saja yang diizinkan atau ditolak. Dengan menyesuaikan kebijakan keamanan, Anda dapat membantu mengamankan lingkungan Anda dan memastikan ImageMagick menjadi anggota yang bertanggung jawab dalam sistem lokal Anda, misalnya dengan mencegah kelebihan beban akibat gambar berukuran besar.

Penting untuk menetapkan batas pada penggunaan resource ImageMagick guna mencegah situasi yang berpotensi merugikan. Misalnya, jika Anda secara tidak sengaja mengunduh gambar dari internet yang telah direkayasa untuk menghasilkan gambar yang sangat besar (misalnya, 20000 kali 20000 piksel), ImageMagick mungkin mencoba mengalokasikan resource yang diperlukan (seperti memori dan ruang disk), dan sistem Anda dapat menolak permintaan tersebut atau menyebabkan program keluar. Sebagai alternatif, komputer Anda mungkin menjadi lambat atau tidak merespons untuk sementara waktu, atau ImageMagick mungkin terpaksa dihentikan paksa. Untuk menghindari situasi seperti ini, Anda dapat menetapkan batas dalam file konfigurasi policy.xml.

Perlu diingat bahwa apa yang dianggap wajar untuk satu lingkungan mungkin tidak cocok untuk lingkungan lain. Misalnya, Anda mungkin menjalankan ImageMagick dalam sandbox di lingkungan yang aman, sementara orang lain mungkin menggunakannya untuk memproses gambar di situs web yang dapat diakses publik. Atau, ImageMagick mungkin berjalan pada host dengan memori besar, sementara instance lain berjalan pada perangkat dengan resource terbatas. Pada host dengan memori besar, mengizinkan pemrosesan gambar berukuran besar mungkin masuk akal, tetapi tidak demikian pada perangkat dengan resource terbatas. Jika Anda menggunakan ImageMagick di situs web publik, Anda mungkin ingin meningkatkan keamanan dengan menonaktifkan coder tertentu seperti MVG atau HTTPS.

Untuk membantu Anda memulai, sejak versi 7.1.1-16, ImageMagick menyediakan kebijakan keamanan yang dapat Anda pilih saat menginstal ImageMagick. Pilih salah satu dari:

open
Kebijakan default untuk instalasi ImageMagick adalah kebijakan keamanan open. Kebijakan ini dirancang untuk digunakan dalam pengaturan yang aman, seperti yang dilindungi oleh firewall atau di dalam container Docker. Dalam kerangka ini, ImageMagick memiliki akses luas ke resource dan fungsionalitas. Kebijakan ini menyediakan opsi yang praktis dan fleksibel untuk manipulasi gambar. Namun, penting dicatat bahwa kebijakan ini dapat menimbulkan kerentanan keamanan dalam kondisi yang kurang terkendali. Oleh karena itu, organisasi harus benar-benar menilai kesesuaian kebijakan open sesuai dengan use case dan prasyarat keamanan mereka masing-masing.
limited
Tujuan utama kebijakan keamanan limited adalah menemukan titik tengah antara kenyamanan dan keamanan. Kebijakan ini melibatkan penonaktifan fungsi yang berpotensi berbahaya, seperti coder tertentu misalnya SVG atau HTTP. Selain itu, kebijakan ini menetapkan beberapa batasan pada penggunaan resource seperti memori, penyimpanan, dan durasi pemrosesan, yang semuanya dapat disesuaikan. Kebijakan ini terbukti menguntungkan dalam situasi yang memerlukan mitigasi potensi ancaman dari penanganan gambar yang mungkin berbahaya atau menuntut resource besar, sambil tetap mempertahankan kemampuan penting untuk format gambar yang umum. secure
Kebijakan keamanan yang ketat ini mengutamakan penerapan kontrol yang tegas dan pembatasan penggunaan resource untuk membangun pengaturan yang sangat aman saat menggunakan ImageMagick. Kebijakan ini menonaktifkan fungsi yang berpotensi berbahaya, termasuk coder tertentu seperti SVG atau HTTP. Kebijakan ini mendorong penyesuaian langkah-langkah keamanan agar selaras dengan kebutuhan lingkungan lokal dan pedoman organisasi. Protokol ini mencakup rincian eksplisit seperti pembatasan konsumsi memori, path yang diizinkan untuk membaca dan menulis, batasan pada urutan gambar, durasi maksimum yang diizinkan untuk alur kerja, alokasi ruang disk untuk data gambar, bahkan passphrase rahasia untuk koneksi jarak jauh. Dengan menerapkan kebijakan yang kuat ini, organisasi dapat meningkatkan postur keamanan mereka secara keseluruhan dan mengurangi kerentanan yang berpotensi muncul. websafe
Protokol keamanan yang dirancang untuk penggunaan web-safe ini berfokus pada situasi di mana ImageMagick digunakan dalam konteks yang dapat diakses publik, seperti situs web. Kebijakan ini menonaktifkan kemampuan untuk membaca dari atau menulis ke format gambar mana pun selain format web-safe seperti GIF, JPEG, dan PNG. Selain itu, kebijakan ini melarang eksekusi filter gambar dan pembacaan tidak langsung (indirect reads), sehingga menggagalkan potensi pelanggaran keamanan. Dengan menerapkan pembatasan ini, kebijakan websafe memperkuat perlindungan sistem yang dapat diakses publik, mengurangi risiko penyalahgunaan kemampuan ImageMagick untuk serangan potensial.

Di Linux, pilih kebijakan dengan opsi configure script --with-security-policy={open, limited, secure, websafe}. Di Windows, pilihan ini ditampilkan saat Anda menjalankan aplikasi configure.

Kami menganjurkan Anda untuk meninjau setiap aturan dalam file konfigurasi policy.xml Anda. Sesuaikan parameter sesuai dengan kebutuhan organisasi Anda. Anda dapat mengubah format gambar yang diizinkan, menetapkan path tertentu, dan membatasi operasi tertentu berdasarkan kebutuhan keamanan Anda. Perlu diingat bahwa menyesuaikan kebijakan keamanan adalah keseimbangan yang halus antara fungsionalitas dan keamanan. Kebijakan yang terlalu ketat dapat menghambat tugas pemrosesan gambar yang sah, sementara kebijakan yang terlalu longgar dapat menimbulkan kerentanan.

Contoh kebijakan keamanan

Berikut adalah contoh kebijakan keamanan:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policymap [
<!ELEMENT policymap (policy)*>
<!ATTLIST policymap xmlns CDATA #FIXED "">
<!ELEMENT policy EMPTY>
<!ATTLIST policy xmlns CDATA #FIXED "">
<!ATTLIST policy domain NMTOKEN #REQUIRED>
<!ATTLIST policy name NMTOKEN #IMPLIED>
<!ATTLIST policy pattern CDATA #IMPLIED>
<!ATTLIST policy rights NMTOKEN #IMPLIED>
<!ATTLIST policy stealth NMTOKEN #IMPLIED>
<!ATTLIST policy value CDATA #IMPLIED>
]>
<!--
  Creating a security policy that fits your specific local environment
  before making use of ImageMagick is highly advised. You can find guidance on
  setting up this policy at https://imagemagick.org/security-policy/,
  and it's important to verify your policy using the validation tool located
  at https://imagemagick-secevaluator.doyensec.com/.  We also strongly
  recommend that all users validate their security assumptions by testing their
  configurations after making any policy changes. This helps ensure that the
  intended restrictions are functioning as expected in their specific
  deployment environment.


  Web-safe ImageMagick security policy:

  This security protocol designed for web-safe usage focuses on situations
  where ImageMagick is applied in publicly accessible contexts, like websites.
  It deactivates the capability to read from or write to any image formats
  other than web-safe formats like GIF, JPEG, and PNG. Additionally, this
  policy prohibits the execution of image filters and indirect reads, thereby
  thwarting potential security breaches. By implementing these limitations,
  the web-safe policy fortifies the safeguarding of systems accessible to
  the public, reducing the risk of exploiting ImageMagick's capabilities
  for potential attacks.
-->
<policymap>
  <!-- Set maximum parallel threads. -->
  <policy domain="resource" name="thread" value="2"/>
  <!-- Set maximum time in seconds or neumonics, e.g. "2 minutes". When this
       limit is exceeded, an exception is thrown and processing stops. -->
  <policy domain="resource" name="time" value="60"/>
  <!-- Set maximum number of open pixel cache files. When this limit is
       exceeded, any subsequent pixels cached to disk are closed and reopened
       on demand. -->
  <policy domain="resource" name="file" value="768"/>
  <!-- Set maximum amount of memory in bytes to allocate for the pixel cache
       from the heap. When this limit is exceeded, the image pixels are cached
       to memory-mapped disk. -->
  <policy domain="resource" name="memory" value="256MiB"/>
  <!-- Set maximum amount of memory map in bytes to allocate for the pixel
       cache. When this limit is exceeded, the image pixels are cached to
       disk. -->
  <policy domain="resource" name="map" value="512MiB"/>
  <!-- Set the maximum width * height of an image that can reside in the pixel
       cache memory. Images that exceed the area limit are cached to disk. -->
  <policy domain="resource" name="area" value="16KP"/>
  <!-- Set maximum amount of disk space in bytes permitted for use by the pixel
       cache. When this limit is exceeded, the pixel cache is not be created
       and an exception is thrown. -->
  <policy domain="resource" name="disk" value="1GiB"/>
  <!-- Set the maximum length of an image sequence.  When this limit is
       exceeded, an exception is thrown. -->
  <policy domain="resource" name="list-length" value="16"/>
  <!-- Set the maximum width of an image.  When this limit is exceeded, an
       exception is thrown. -->
  <policy domain="resource" name="width" value="4KP"/>
  <!-- Set the maximum height of an image.  When this limit is exceeded, an
       exception is thrown. -->
  <policy domain="resource" name="height" value="4KP"/>
  <!-- Periodically yield the CPU for at least the time specified in
       milliseconds. -->
  <policy domain="resource" name="throttle" value="2"/>
  <!-- Dynamically yield the CPU relative to the system load average. -->
  <policy domain="resource" name="dynamic-throttle" value="false"/>
  <!-- Do not create temporary files in the default shared directories, instead
       specify a private area to store only ImageMagick temporary files. -->
  <!--  -->
  <!-- Force memory initialization by memory mapping select memory
       allocations. -->
  <policy domain="cache" name="memory-map" value="anonymous"/>
  <!-- Ensure all image data is fully flushed and synchronized to disk. -->
  <policy domain="cache" name="synchronize" value="true"/>
  <!-- Replace passphrase for secure distributed processing -->
  <!--  -->
  <!-- Do not permit any external delegates to execute. -->
  <policy domain="delegate" rights="none" pattern="*"/>
  <!-- Do not permit any image filters to load. -->
  <policy domain="filter" rights="none" pattern="*"/>
  <!-- Don't read/write from/to stdin/stdout. -->
  <policy domain="path" rights="none" pattern="-"/>
  <policy domain="path" rights="none" pattern="fd:*"/>
  <!-- Sensitive paths are not permitted. -->
  <policy domain="path" rights="none" pattern="/etc/*"/>
  <!-- Relative paths are not permitted. -->
  <policy domain="path" rights="none" pattern="*../*"/>
  <!-- Indirect reading is not permitted. -->
  <policy domain="path" rights="none" pattern="@*"/>
  <!-- Deny all image modules and specifically exempt reading or writing
       web-safe image formats. -->
  <policy domain="module" rights="none" pattern="*" />
  <policy domain="module" rights="read | write" pattern="{GIF,JPEG,PNG,WEBP}" />
  <!-- This policy sets the number of times to replace content of certain
       memory buffers and temporary files before they are freed or deleted. -->
  <policy domain="system" name="shred" value="1"/>
  <!-- Enable the initialization of buffers with zeros, resulting in a minor
       performance penalty but with improved security. -->
  <policy domain="system" name="memory-map" value="anonymous"/>
  <!-- Set the maximum amount of memory in bytes that is permitted for
       allocation requests. -->
  <policy domain="system" name="max-memory-request" value="256MiB"/>
  <-- If the basename of path is a symbolic link, the open fails -->
  <policy domain="system" name="symlink" rights="none" pattern="follow"/>
</policymap>

Untuk mencegah satu sesi menghabiskan seluruh memori yang tersedia ketika memproses banyak sesi secara bersamaan, gambar berukuran besar di-cache ke disk dengan kebijakan ini. Jika sebuah gambar melebihi batas disk untuk cache piksel, program akan keluar. Selain itu, batas waktu telah ditetapkan untuk mencegah tugas pemrosesan berjalan terlalu lama. Jika lebar atau tinggi gambar lebih besar dari 8192 piksel, atau jika sebuah urutan gambar memiliki lebih dari 32 frame, pemrosesan akan berhenti dan sebuah exception akan dilemparkan.

Mulai dari ImageMagick 7.0.1-8, Anda dapat mencegah penggunaan satu delegate eksternal tertentu atau semua delegate eksternal (dengan menetapkan pattern ke "*"). Sebelum rilis ini, Anda dapat menggunakan domain coder dan menetapkan rights ke none serta glob pattern ke HTTPS untuk mencegah penggunaan delegate eksternal. Selain itu, pengguna juga dicegah untuk menjalankan filter gambar apa pun dan melakukan pembacaan tidak langsung (indirect reads). Jika Anda ingin, misalnya, membaca teks dari sebuah file (misalnya caption:@myCaption.txt), Anda perlu menonaktifkan path policy ini.

Glob pattern kebijakan bersifat case sensitive sebelum ImageMagick 7.1.1-16. Untuk mendapatkan perilaku yang diharapkan, coder dan module harus ditulis dengan huruf besar (misalnya "EPS", bukan "eps") atau gunakan pattern yang case-insensitive seperti [Pp][Nn][Gg].

Berikut ini yang dapat Anda harapkan saat Anda membatasi coder HTTPS, misalnya:

$ magick ../static/img/wizard.png wizard.jpg
convert: attempt to perform an operation not allowed by the security policy `HTTPS'
convert: no images defined `wizard.jpg'

Sejak ImageMagick versi 7.0.4-7, Anda dapat dengan mudah menolak akses ke semua delegate eksternal dan coder, kecuali untuk sekumpulan kecil tipe gambar web-safe yang telah terbukti. Contohnya,

<policy domain="delegate" rights="none" pattern="*" />
<policy domain="module" rights="none" pattern="*" />
<policy domain="module" rights="read | write" pattern="{GIF,JPEG,PNG,WEBP}" />

Module policy mengaktifkan atau menonaktifkan seluruh module, baik untuk membaca maupun menulis. Untuk hanya membaca atau menulis satu format gambar, gunakan coder policy sebagai gantinya. Sebagai contoh, kita menonaktifkan pembacaan untuk beberapa format terkait Postscript saja, namun Anda tetap dapat menulisnya:

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

Sejak ImageMagick 7.0.7-0, Anda dapat mengalokasikan cache piksel dan beberapa buffer internal dengan anonymous memory mapping, alih-alih dari heap. Akibatnya, piksel diinisialisasi ke nol yang mengakibatkan sedikit penurunan performa. Anda juga dapat mengacak isi buffer memori tertentu (memerlukan versi 7.1.0-38) dan file sementara sebelum dibebaskan atau dihapus. Nilai shred adalah jumlah pengulangan penggantian isi dengan data acak. Contohnya,

<policy domain="system" name="memory-map" value="anonymous"/>
<policy domain="cache" name="memory-map" value="anonymous"/>
<policy domain="system" name="shred" value="1"/>

Karena alasan performa, pass pertama berlangsung cepat dengan mengulang random sequence seperlunya untuk menimpa isi buffer atau file. Pass berikutnya sekitar satu orde besaran (sekitar 10x) lebih lambat, tetapi menghasilkan byte acak yang secara kriptografis kuat untuk seluruh panjang buffer atau file.

Beberapa algoritma pemrosesan gambar (misalnya wavelet transform) dapat mengonsumsi memori dalam jumlah besar untuk menyelesaikan prosesnya. ImageMagick menyediakan memory pool terpisah untuk permintaan resource besar semacam ini, dan sejak 7.0.6-1 memungkinkan Anda menetapkan batas permintaan maksimum. Jika batas ini terlampaui, alokasi tersebut akan di-memory-map ke disk sebagai gantinya. Berikut ini kita membatasi permintaan memori maksimum melalui policy:

<policy domain="system" name="max-memory-request" value="256MiB"/>

Sejak ImageMagick versi 7.0.4-23, Anda dapat membatasi jumlah maksimum gambar dalam sebuah urutan (sequence). Sebagai contoh, untuk membatasi urutan gambar hingga maksimum 64 frame, gunakan:

<policy domain="resource" name="list-length" value="64"/>

Perlu dicatat, nilai numerik dalam policy berupa floating-point dengan awalan SI opsional (misalnya, 10MiB).

Untuk detail lebih lanjut tentang batas resource dan file konfigurasi policy, baca Resource dan Arsitektur.

Sejak ImageMagick 7.0.6-0, Anda dapat menetapkan kebijakan keamanan ImageMagick secara programatis dengan SetMagickSecurityPolicy() (MagickCore) atau MagickSetSecurityPolicy() (MagickWand).

Sejak ImageMagick versi 7.0.8-11, Anda dapat menetapkan kebijakan keamanan modul (module security policy). Sebagai contoh, untuk mencegah interpretasi Postscript atau PDF, gunakan:

<policy domain="module" rights="none" pattern="{ps,pdf,xps}/>

Sejak ImageMagick versi 7.0-10-52, Anda dapat menetapkan font policy. Tentukan path ke sebuah font Unicode yang menjadi default ImageMagick setiap kali pengguna tidak menentukan preferensi font:

<policy domain="system" name="font" value="/usr/share/fonts/arial-unicode.ttf"/>

Perlu dicatat, dalam glob pattern path file, gunakan karakter backslash (\) untuk meng-escape karakter yang jika tidak akan diinterpretasikan sebagai karakter khusus. Sebagai contoh:

<policy domain="path" rights="none" pattern="c:\\\\*"/>

Anda dapat memverifikasi bahwa perubahan policy Anda telah berlaku dengan perintah berikut:

$ magick identify -list policy
Path: ImageMagick-7/policy.xml
  Policy: Cache
    name: memory-map
    value: anonymous
  Policy: Cache
    name: synchronize
    value: true
  Policy: Resource
    name: list-length
    value: 32
  Policy: Resource
    name: time
    value: 120
  Policy: Resource
    name: thread
    value: 2
  Policy: Resource
    name: file
    value: 768
  Policy: Resource
    name: disk
    value: 1GiB
  Policy: Resource
    name: map
    value: 512MiB
  Policy: Resource
    name: memory
    value: 256MiB
  Policy: Resource
    name: area
    value: 16KP
  Policy: Resource
    name: height
    value: 8KP
  Policy: Resource
    name: width
    value: 8KP
  Policy: Resource
    name: temporary-path
    value: /opt/tmp
  Policy: Module
    rights: Write
    pattern: {HTTP,HTTPS,MVG,PS,PDF}
  Policy: Filter
    rights: None
    pattern: *
  Policy: Path
    rights: None
    pattern: @*
  Policy: System
    name: font
    value: ImageMagick-7/arial-unicode.ttf

Path: [built-in]
  Policy: Undefined
    rights: None

Perhatikan bahwa shared-secret policy tidak muncul dalam daftar karena adanya properti stealth.

Doyensec menyediakan sebuah policy evaluator tool yang dapat membantu Anda merancang dan mengaudit kebijakan keamanan Anda. Tool ini dapat ditemukan di imagemagick-secevaluator.doyensec.com.

Kebijakan sinkronisasi cache piksel

Saat menulis piksel gambar ke disk, ImageMagick terlebih dahulu melakukan preallocate pada file disk, yang lebih cepat dibandingkan mengisi penuh file tersebut dengan nol. Untuk meningkatkan performa lebih jauh lagi, file tersebut di-memory-map ke disk. Hal ini dapat menghasilkan peningkatan performa hingga 5 kali lipat, tetapi ada kemungkinan file disk kehabisan ruang kosong saat sedang diisi, sehingga menyebabkan sistem operasi (OS) melemparkan sinyal SIGBUS yang menghentikan ImageMagick agar tidak dapat melanjutkan proses. Untuk mencegah munculnya sinyal SIGBUS, gunakan security policy berikut:

<policy domain="cache" name="synchronize" value="True"/>

Tetapkan ke True untuk memastikan seluruh data gambar di-flush sepenuhnya dan disinkronkan ke disk. Ada penurunan performa, namun manfaatnya mencakup terjaminnya file gambar yang valid jika terjadi crash sistem, serta pelaporan dini jika ruang disk untuk cache piksel gambar tidak mencukupi.

Kebijakan keamanan zero-configuration

Build zero configuration ImageMagick tidak mengizinkan file konfigurasi eksternal. Untuk menentukan security policy Anda, Anda harus mengedit source module MagickCore/policy-private.h, menambahkan pernyataan policy Anda, lalu mem-build distribusi ImageMagick tersebut. Berikut adalah contoh security policy zero configuration:

static const char
  *ZeroConfigurationPolicy = \
"<policymap> \
  <policy domain=\"module\" rights=\"none\" pattern=\"MVG\"/> \
</policymap>";

Pertimbangan keamanan lainnya

Jika Anda menemukan kerentanan (vulnerability) pada ImageMagick, tentukan terlebih dahulu apakah kerentanan tersebut dapat dimitigasi oleh security policy. Secara default, ImageMagick bersifat open. Gunakan security policy untuk menambahkan batasan guna memenuhi kebutuhan tata kelola keamanan lokal Anda. Jika Anda yakin bahwa security policy tidak dapat mengatasi kerentanan tersebut, laporkan kerentanan itu sebagai security advisory. Sebagian besar kerentanan ditinjau dan diselesaikan dalam waktu 48 jam.

Ada beberapa cara untuk membuat ImageMagick lebih aman:

  1. Gunakan format gambar web-safe: Membatasi ImageMagick agar hanya membaca atau menulis format gambar web-safe seperti GIF, JPEG, dan PNG dapat membantu meningkatkan keamanan.
  2. Sesuaikan kebijakan keamanan: Anda dapat menyesuaikan security policy agar sesuai dengan kebutuhan lingkungan lokal atau kebijakan organisasi Anda. Policy ini dapat mencakup aspek seperti penggunaan memori, path yang diizinkan untuk membaca dan menulis, jumlah gambar yang diizinkan dalam sebuah urutan, waktu maksimum sebuah alur kerja dapat berjalan, jumlah ruang disk yang diizinkan untuk piksel gambar, passphrase rahasia untuk koneksi jarak jauh, serta coder mana saja yang diizinkan atau ditolak.
  3. Tetapkan batas pada penggunaan resource: Anda dapat menetapkan batas pada resource seperti penggunaan memori, ruang disk, dan durasi alur kerja untuk mencegah situasi yang berpotensi merugikan.
  4. Gunakan sandboxing: Sandboxing adalah teknik keamanan yang memungkinkan Anda menjalankan sebuah program dalam lingkungan yang terbatas, untuk mencegahnya mengakses informasi sensitif atau melakukan perubahan pada sistem.
  5. Nonaktifkan coder yang berpotensi berbahaya: Jika Anda menggunakan ImageMagick di situs web publik, Anda mungkin ingin meningkatkan keamanan dengan menonaktifkan coder tertentu seperti MVG atau HTTPS.
  6. Cegah eksekusi filter gambar dan pembacaan tidak langsung: Anda dapat mencegah pengguna menjalankan filter gambar dan melakukan pembacaan tidak langsung (indirect reads) untuk meningkatkan keamanan.
  7. Gunakan versi terbaru ImageMagick: Penting untuk menggunakan versi terkini ImageMagick agar dapat memanfaatkan perbaikan keamanan dan pembaruan terbaru.