SVG Sanitizer compared with DOMPurify and Scour| Desinfetante SVG | DOMPurify | Scour |
|---|
| Fundamentos técnicos: 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. | Fundamentos técnicos: 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. | Fundamentos técnicos: 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. |
| Entradas e saídas: 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. | Entradas e saídas: 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. | Entradas e saídas: 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. |
| Licença e abertura: 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. | Licença e abertura: Dual-licensed under Apache-2.0 and MPL-2.0, so it can be embedded in most commercial code bases. | Licença e abertura: Open source under Apache License 2.0. |
| Platform and 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. | Platform and 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. | Platform and integration: Python command line tool installed with pip. The latest release listed on PyPI is 0.38.2, dated November 2020. |
| Limites de validade: 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. | Limites de validade: Only the latest release receives security support. Results depend on the DOM implementation in use and on the configuration chosen by the integrator. | Limites de validade: Not designed to detect or block scripts, so it must not be the only protection when handling files from unknown sources. |
| Quando escolher: 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. | Quando escolher: Choose it when untrusted markup is handled in a JavaScript application, in the browser or on a Node.js server. | Quando escolher: Choose it to shrink trusted SVG files in a build step, after the content has been vetted with a sanitizer. |