Chuyển đến nội dung chính

Báo cáo Engine

Quy trình phân tích

Thư viện Glasswall nhận một tệp thông qua một API đã được công bố và đưa tệp đó qua một số chu kỳ xử lý. Đầu ra từ mỗi chu kỳ trở thành đầu vào cho chu kỳ tiếp theo, nhờ đó duy trì một mức độ tách biệt giữa các quy trình. Việc phân tích tệp diễn ra trong từng chu kỳ. Các chu kỳ đầu làm rõ cấu trúc của tệp và kích thước của các thành phần cấu thành. Các chu kỳ sau tập trung vào việc thực hiện các kiểm tra cú pháp và ngữ nghĩa, nhằm xác định các nguồn rủi ro có thể có, các trường nằm ngoài phạm vi hoặc các cấu trúc bị định dạng sai.

Khi các phần tử của tệp được nén, chúng sẽ được giải nén và kết quả sẽ được đánh giá, phân tích và xác minh. Điều này cho phép báo cáo phân tích được xuất bản ở cuối quy trình đưa ra đánh giá toàn diện về nội dung và cấu trúc của tệp. Bằng cách đi qua các quy trình làm sạch và khắc phục, Glasswall có thể cung cấp báo cáo chính xác về các hành động mà chức năng tái tạo của Glasswall có thể thực hiện, từ đó làm cho tệp phù hợp với đặc tả.

Trong mỗi chu kỳ, tệp đang được xử lý được chuyển đổi thành biểu diễn nội bộ riêng của Glasswall. Điều này đơn giản hóa các quy trình phân tích cú pháp và duyệt, đồng thời giúp cung cấp sự cô lập. Khi quy trình phân tích điều hướng qua các cấu trúc của Glasswall, các kiểm tra chi tiết không chỉ được thực hiện trên từng thành phần riêng lẻ mà còn ở cấp độ cao hơn đối với các mối quan hệ giữa các thành phần của tệp. Các kiểm tra cấp cao hơn này cho phép cấu trúc ngữ nghĩa và tính nhất quán của tệp được xác minh đúng cách.

Báo cáo phân tích

Báo cáo phân tích của Embedded Engine cung cấp mô tả chi tiết, không phụ thuộc loại tệp, về dữ liệu và được ghi lại ở định dạng XML. Cấu trúc của báo cáo này tuân theo một Analysis Report XSD, được thiết kế để đơn giản hóa việc phân tích cú pháp và xử lý. Analysis report XSD nằm trong thư mục /schemas/sdk_editor của gói phát hành Embedded Engine.

Báo cáo phân tích chứa các thông tin tệp sau:

  • Tóm tắt tài liệu — thông tin cấp cao dành riêng cho tệp.
  • Content Management Policy — các cài đặt của các công tắc quản lý nội dung đã được áp dụng cho tệp đã xử lý.
  • Nhóm nội dung — nhóm nội dung chính được phát hiện trong tệp đã xử lý.
  • Mục nội dung — các cấu trúc cấp thấp được phát hiện trong tệp đã xử lý.
  • Mục sự cố — các cấu trúc được phát hiện không khớp với đặc tả của nhà sản xuất hoặc các cấu trúc được phát hiện không được policy cho phép (trong cả hai trường hợp, tệp sẽ bị từ chối).
  • Mục làm sạch — các cấu trúc được phát hiện thuộc quản lý nội dung được policy đánh dấu để loại bỏ.
  • Mục được phép — các cấu trúc được phát hiện thuộc quản lý nội dung được policy cho phép.
  • Mục khắc phục — các chỉnh sửa tự động được áp dụng cho tệp đã xử lý nhằm đưa tệp phù hợp với đặc tả của nhà sản xuất.

Ví dụ về báo cáo phân tích

Phần này chứa một Glasswall Analysis Report rút gọn bao gồm tất cả các thành phần chính của một báo cáo điển hình. Ví dụ cụ thể này dựa trên một tệp PDF.

Tóm tắt tài liệu

Mỗi báo cáo XML bắt đầu với phần tóm tắt tài liệu được hiển thị bên dưới:

    <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 - Kích thước của tệp đầu vào
  • FileType - Loại tệp được Glasswall phát hiện
  • Version - Phiên bản định dạng tệp (khi có thể xác định)
  • FileTypeDetectionMethod - Phương pháp phát hiện của Glasswall được sử dụng để xác định định dạng tệp
  • InputSHA256 - SHA-256 của tệp đầu vào gốc
  • OutputSHA256 - SHA-256 của tệp đầu ra sau khi được Glasswall xử lý (nếu tệp được tạo lại)
  • ProcessingTimeMilliseconds - Thời gian do Glasswall đo được để xử lý tệp
  • ComplexityLevel - Ước tính của Glasswall về mức độ phức tạp của tệp, được tạo ra bằng cách tính log10 đến 2 chữ số thập phân của số lượng artefact được xác định trong tệp

Quản lý nội dung

Các policy quản lý nội dung đã được sử dụng trên tệp sau đó sẽ được liệt kê.

Lưu ý: Tất cả policy cho mọi loại tệp đều được liệt kê trong mỗi báo cáo. Khi policy chưa được cấu hình nhưng có sẵn, các cài đặt policy mặc định đã được áp dụng cũng sẽ được liệt kê.

Một số cài đặt công tắc quản lý nội dung PDF được hiển thị bên dưới:

    <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>

Nhóm nội dung và mục

Số lượng nhóm nội dung khác nhau được tìm thấy trong tệp (16), cùng với một ví dụ về một mục nội dung từ nhóm đầu tiên, được hiển thị bên dưới:

    <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>

Các mục sanitisation

Trong ví dụ này, vì công tắc metadata đã được đặt thành sanitise, một cấu trúc từ điển được hiển thị là đã được gắn thẻ để loại bỏ.

    <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>

Các mục được cho phép

Trong ví dụ này, vì công tắc metadata đã được đặt thành allow, nên một cấu trúc từ điển được giữ lại.

    <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>

Các mục Remedy

Không phải tất cả báo cáo XML đều bao gồm Remedies, vì đây là các chỉnh sửa tự động được thực hiện để đưa mọi tệp được tái tạo phù hợp với đặc tả tệp. Trong ví dụ này, một mục remedy đã được báo cáo trong tệp.

    <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>

Mục sự cố

Rất ít tệp gặp sự cố, vì điều này có nghĩa là chúng không chỉ không tuân thủ đặc tả tệp, mà Glasswall còn không thể Remedy sự cố để đưa chúng trở lại các tiêu chuẩn được đặt ra trong đặc tả. Một tệp có mục sự cố không thể được tạo lại.

    <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>

Các mục sự cố cũng được báo cáo khi một tệp được xác định là không tuân thủ do policy quản lý nội dung (khi đã sử dụng thiết lập disallow).

Mỗi mục Sanitisation, Allowed Item, mục Remedy hoặc mục Issue đều có một ID số duy nhất được liên kết với nó, ताकि mục đó có thể được các ứng dụng khác muốn xử lý báo cáo XML nhận diện một cách duy nhất.