Langkau ke kandungan utama

Pelaporan enjin

Proses analisis

Pustaka Glasswall menerima fail melalui API yang diterbitkan dan menghantarnya melalui beberapa kitaran proses. Output daripada setiap kitaran menjadi input untuk kitaran seterusnya, sekali gus mengekalkan tahap pengasingan antara proses. Analisis fail berlaku dalam setiap kitaran. Kitaran awal mengenal pasti struktur fail dan saiz bahagian-bahagian yang membentuknya. Kitaran kemudian tertumpu pada pelaksanaan semakan sintaks dan semantik, yang mengenal pasti kemungkinan punca risiko, medan di luar julat atau struktur yang cacat.

Apabila elemen fail dimampatkan, elemen tersebut akan dikembangkan dan hasilnya dinilai, dianalisis serta disahkan. Ini membolehkan laporan analisis yang diterbitkan pada akhir proses memberikan penilaian menyeluruh terhadap kandungan dan struktur fail. Dengan melalui proses sanitisation dan remediation langkah demi langkah, Glasswall dapat menyediakan laporan yang tepat tentang tindakan yang boleh dilakukan oleh fungsi regeneration Glasswall, sekali gus menjadikan fail mematuhi spesifikasi.

Semasa setiap kitaran, fail yang sedang diproses ditukar kepada perwakilan dalaman Glasswall sendiri. Ini memudahkan proses parsing dan traversal serta membantu menyediakan pengasingan. Apabila proses analisis menavigasi melalui struktur Glasswall, semakan terperinci bukan sahaja dibuat pada komponen individu tetapi juga pada tahap yang lebih tinggi terhadap hubungan antara komponen fail. Semakan tahap lebih tinggi ini membolehkan struktur semantik dan ketekalan fail disahkan dengan betul.

Laporan analisis

Laporan analisis Embedded Engine menyediakan penerangan terperinci yang tidak bergantung pada jenis fail tentang data dan direkodkan dalam format XML. Struktur laporan ini mengikut Analysis Report XSD, yang direka untuk memudahkan parsing dan pemprosesan. XSD laporan analisis terletak dalam folder /schemas/sdk_editor bagi pakej keluaran Embedded Engine.

Laporan analisis mengandungi maklumat fail berikut:

  • Ringkasan Dokumen — maklumat khusus fail pada peringkat tinggi.
  • Content Management Policy — tetapan suis pengurusan kandungan yang telah digunakan pada fail yang diproses.
  • Kumpulan Kandungan — pengelompokan utama kandungan yang dikesan dalam fail yang diproses.
  • Item Kandungan — struktur peringkat rendah yang dikesan dalam fail yang diproses.
  • Item Isu — struktur yang dikesan yang tidak sepadan dengan spesifikasi pengeluar atau apabila struktur yang dikesan tidak dibenarkan oleh policy (dalam kedua-dua kes fail ditolak).
  • Item Sanitasi — struktur yang dikesan di bawah pengurusan kandungan yang ditandakan untuk dibuang oleh policy.
  • Item Dibenarkan — struktur yang dikesan di bawah pengurusan kandungan yang dibenarkan oleh policy.
  • Item Pemulihan — pembetulan automatik yang digunakan pada fail yang diproses untuk memastikan fail mematuhi spesifikasi pengeluar.

Laporan analisis sampel

Bahagian ini mengandungi Glasswall Analysis Report ringkas yang merangkumi semua elemen utama bagi laporan biasa. Contoh khusus ini adalah berdasarkan fail PDF.

Ringkasan dokumen

Setiap laporan XML bermula dengan ringkasan dokumen yang ditunjukkan di bawah:

    <gw:DocumentSummary>
<gw:TotalSizeInBytes>2293803</gw:TotalSizeInBytes>
<gw:FileType>pdf</gw:FileType>
<gw:Version>PDF-1.6</gw:Version>
<gw:FileTypeDetectionMethod>signature match</gw:FileTypeDetectionMethod>
<gw:InputSHA256>DEE7CEB7AB57227121FF65F0D8D0878CBEDF90864069D9525698257972498099</gw:InputSHA256>
<gw:OutputSHA256>83EE59FAB5972429CE65CBB22EBF8B592D53F47927E0FA751584875D4F80CA1E</gw:OutputSHA256>
<gw:ProcessingTimeMilliseconds>101</gw:ProcessingTimeMilliseconds>
<gw:ComplexityLevel>4.41</gw:ComplexityLevel>
</gw:DocumentSummary>

  • TotalSizeInBytes - Saiz fail input
  • FileType - Jenis fail yang dikesan oleh Glasswall
  • Version - Versi format fail (apabila dapat ditentukan)
  • FileTypeDetectionMethod - Kaedah pengesanan Glasswall yang digunakan untuk menentukan format fail
  • InputSHA256 - SHA-256 bagi fail input asal
  • OutputSHA256 - SHA-256 bagi fail output selepas diproses oleh Glasswall (sekiranya fail dijana semula)
  • ProcessingTimeMilliseconds - Masa yang diukur oleh Glasswall untuk memproses fail
  • ComplexityLevel - Anggaran Glasswall terhadap tahap kerumitan fail, dihasilkan dengan mengira log10 hingga 2 tempat perpuluhan bagi bilangan artefak yang dikenal pasti dalam fail

Pengurusan kandungan

policy pengurusan kandungan yang digunakan pada fail kemudian disenaraikan.

Nota: Semua policy untuk semua jenis fail disenaraikan dalam setiap laporan. Jika policy belum dikonfigurasikan tetapi tersedia, tetapan policy lalai yang digunakan juga akan disenaraikan.

Sebahagian daripada tetapan suis pengurusan kandungan PDF ditunjukkan di bawah:

    <gw:ContentManagementPolicy>
<gw:Camera cameraName="pdfConfig">
<gw:ContentSwitch>
<gw:ContentName>javascript</gw:ContentName>
<gw:ContentValue>sanitise</gw:ContentValue>
</gw:ContentSwitch>
<gw:ContentSwitch>
<gw:ContentName>acroform</gw:ContentName>
<gw:ContentValue>sanitise</gw:ContentValue>
</gw:ContentSwitch>
<gw:ContentSwitch>
<gw:ContentName>embedded_files</gw:ContentName>
<gw:ContentValue>sanitise</gw:ContentValue>
</gw:ContentSwitch>
</gw:Camera>
</gw:ContentManagementPolicy>

Kumpulan kandungan dan item

Bilangan kumpulan kandungan berbeza yang ditemui dalam fail (16) bersama contoh item kandungan daripada kumpulan pertama ditunjukkan di bawah:

    <gw:ContentGroups groupCount="16">
<gw:ContentGroup>
<gw:BriefDescription>PDF document has Basic File Section structure instances</gw:BriefDescription>
<gw:ContentItems itemCount="5">
<gw:ContentItem>
<gw:TechnicalDescription>PDF Header Instances</gw:TechnicalDescription>
<gw:InstanceCount>1</gw:InstanceCount>
<gw:TotalSizeInBytes>15</gw:TotalSizeInBytes>
<gw:AverageSizeInBytes>15</gw:AverageSizeInBytes>
<gw:MinSizeInBytes>15</gw:MinSizeInBytes>
<gw:MaxSizeInBytes>15</gw:MaxSizeInBytes>
</gw:ContentItem>
</gw:ContentItems>>
</gw:ContentGroup>
...
</gw:ContentGroups>

Item sanitasi

Dalam contoh ini, kerana suis metadata telah ditetapkan kepada sanitise, struktur kamus ditunjukkan sebagai ditandakan untuk dibuang.

    <gw:SanitisationItems itemCount="1">
<gw:SanitisationItem>
<gw:TechnicalDescription>Document information dictionary detected in a document trailer dictionary.</gw:TechnicalDescription>
<gw:SanitisationId>16872998749</gw:SanitisationId>
<gw:InstanceCount>1</gw:InstanceCount>
<gw:TotalSizeInBytes>0</gw:TotalSizeInBytes>
</gw:SanitisationItem>
</gw:SanitisationItems>

Item dibenarkan

Dalam contoh ini, kerana suis metadata telah ditetapkan kepada allow, maka struktur kamus dikekalkan.

    <gw:AllowedItems itemCount="1">
<gw:AllowedItem>
<gw:TechnicalDescription>Document information dictionary detected in a document trailer dictionary.</gw:TechnicalDescription>
<gw:AllowedId>16872998749</gw:AllowedId>
<gw:InstanceCount>1</gw:InstanceCount>
<gw:TotalSizeInBytes>0</gw:TotalSizeInBytes>
</gw:AllowedItem>

Item Remedy

Bukan semua laporan XML menyertakan Remedies, kerana ini ialah pembetulan automatik yang dibuat untuk memastikan mana-mana fail yang dijana semula mematuhi spesifikasi fail. Dalam contoh ini, satu item remedy telah dilaporkan dalam fail.

    <gw:RemedyItems itemCount="1">
<gw:RemedyItem>
<gw:TechnicalDescription>
PDF Stream is missing an End-Of-Line before the &apos;EndStream&apos; marker.
</w:TechnicalDescription>
<gw:RemedyId>1605893787</gw:RemedyId>
<gw:InstanceCount>7</gw:InstanceCount>
</gw:RemedyItem>
</gw:RemedyItems>

Item Isu

Sangat sedikit fail mempunyai isu, kerana ini bermaksud fail tersebut bukan sahaja tidak mematuhi spesifikasi fail, tetapi Glasswall juga tidak dapat Remedy isu tersebut kembali kepada piawaian yang ditetapkan dalam spesifikasi. Fail dengan item isu tidak boleh dijana semula.

    <gw:IssueItems itemCount="1">
<gw:IssueItem>
<gw:TechnicalDescription>
/Info dictionary contained an unexpected key (/GTS_PDFXConformance).
</gw:TechnicalDescription>
<gw:IssueId>1670998746</gw:IssueId>
<gw:InstanceCount>1</gw:InstanceCount>
</gw:IssueItem>
</gw:IssueItems>

Item isu juga dilaporkan apabila sesuatu fail telah ditentukan sebagai tidak mematuhi disebabkan oleh policy pengurusan kandungan (apabila tetapan disallow telah digunakan).

Setiap item Sanitisation, Allowed Item, item Remedy atau item Issue mempunyai ID numerik unik yang dikaitkan dengannya, supaya item tersebut boleh dikenal pasti secara unik oleh aplikasi lain yang mungkin ingin memproses laporan XML.