Keep active content out of the viewer
The parser builds a new allow-listed reading tree. Original scripts, event attributes, CSS, forms, SVG, media and frames are not inserted into the preview. Live links become inert text and their destinations are recorded in the manifest.
The preview creates new allow-listed elements and text nodes inside a style-isolated shadow root; it does not parse archived markup with innerHTML. Downloaded HTML has its own restrictive content security policy. A shadow root isolates presentation, not security: removing active markup and content-driven network references is the security control.
Keep source bytes without accidental execution
The source-original.mhtml.bin file is an unchanged copy of the input. Individual raw parts use .bin names too. They may contain scripts or other active formats: inspect them with a text or hex editor rather than renaming and opening them as pages.
A reading copy is a convenience artifact. It does not prove who created the archive, when it was captured, or whether it is authentic. Preserve the original outside this workflow when provenance matters.
Handle privacy deliberately
No original file is uploaded to a conversion service. The browser may load self-hosted engine or font assets from KitForma; those requests do not contain archive data. Do not share the ZIP without checking its original source, links and hidden MIME parts.
The generated manifest can contain original URLs and metadata. A redacted PDF and a source-preserving ZIP serve different sharing needs; review the intended recipient before distributing either.