SVG Sanitizer compared with DOMPurify and Scour| SVG Desinfektionsmittel | DOMPurify | Scour |
|---|
| Technische Grundlage: The page is a playground for the PHP library svg-sanitize by the GitHub user darylldoyle (the library that powers the Safe SVG WordPress plugin). You paste an SVG and the library filters tags and attributes against a whitelist. The library states that its code is largely borrowed from DOMPurify. | Technische Grundlage: It is a DOM-only XSS sanitizer for HTML, MathML and SVG. It parses the input into a DOM and filters elements and attributes against allow lists. It is the reference design that the PHP library follows. | Technische Grundlage: It is not a security filter. It rewrites SVG to reduce size by removing metadata, comments and redundant data, so a malicious SVG can pass through it unless it is cleaned by another tool. |
| Ein- und Ausgänge: You paste SVG markup or load a built-in sample, choose a library version (50 versions are listed) and options, then read a diff, the cleaned output, a preview and a list of issues. The version selector helps to check whether an older release let a given file through. | Ein- und Ausgänge: It takes an HTML or SVG string, or a DOM node, and returns a clean string or DOM. Output options include whole document, DOM fragment and Trusted Types. Configuration covers allowed tags, forbidden attributes, URI patterns and hooks. | Ein- und Ausgänge: It reads an SVG file and writes an optimized SVG, or a compressed .svgz when the output file has that extension. Options control ID shortening, comment removal and indentation. |
| Lizenz und Offenheit: The playground links to the library repository and issue tracker. The library is released under GPL-2.0, which matters if you plan to embed it in a non-GPL product. | Lizenz und Offenheit: Dual-licensed under Apache-2.0 and MPL-2.0, so it can be embedded in most commercial code bases. | Lizenz und Offenheit: Open source under Apache License 2.0. |
| Plattform und Integration: Browser page for manual checks. For automation, the underlying library installs with Composer as enshrined/svg-sanitize and runs on the server in PHP. It also has a command line scanner script that returns errors as JSON. | Plattform und Integration: JavaScript library for browsers, and for Node.js together with a DOM implementation such as jsdom. The maintainers do not recommend happy-dom as safe. | Plattform und Integration: Python command line tool installed with pip. The latest release listed on PyPI is 0.38.2, dated November 2020. |
| Gültigkeitsgrenzen: The author describes the library as an attempt at a decent SVG sanitizer and states that more extensive testing is still needed. The playground invites users to report any SVG that gets through. Remote references are only removed if that option is switched on. | Gültigkeitsgrenzen: Only the latest release receives security support. Results depend on the DOM implementation in use and on the configuration chosen by the integrator. | Gültigkeitsgrenzen: Not designed to detect or block scripts, so it must not be the only protection when handling files from unknown sources. |
| Wann man es wählen sollte: Choose it to check an uploaded SVG by hand, or to test how the PHP library treats a suspicious file before relying on it in a PHP or WordPress project. | Wann man es wählen sollte: Choose it when untrusted markup is handled in a JavaScript application, in the browser or on a Node.js server. | Wann man es wählen sollte: Choose it to shrink trusted SVG files in a build step, after the content has been vetted with a sanitizer. |