From dce4db05eb1d19a672894b386ea987ae99aeb5ad Mon Sep 17 00:00:00 2001 From: Matthieu Marcillaud <marcimat@rezo.net> Date: Sun, 16 Jan 2022 00:30:37 +0100 Subject: [PATCH] SVG Sanitizer en version 0.14.1 --- lib/svg-sanitizer/composer.json | 9 ++++++--- lib/svg-sanitizer/src/Sanitizer.php | 4 ++-- lib/svg-sanitizer/src/svg-scanner.php | 7 ++++++- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/lib/svg-sanitizer/composer.json b/lib/svg-sanitizer/composer.json index ed475560..8253fdcf 100644 --- a/lib/svg-sanitizer/composer.json +++ b/lib/svg-sanitizer/composer.json @@ -8,6 +8,9 @@ "email": "daryll@enshrined.co.uk" } ], + "scripts": { + "test": "phpunit --no-coverage" + }, "autoload": { "psr-4": { "enshrined\\svgSanitize\\": "src" @@ -18,13 +21,13 @@ "enshrined\\svgSanitize\\Tests\\": "tests" } }, - "minimum-stability": "stable", "require": { "ext-dom": "*", - "ext-libxml": "*" + "ext-libxml": "*", + "php": "^7.0 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^6", + "phpunit/phpunit": "^6.5 || ^8.5", "codeclimate/php-test-reporter": "^0.1.2" } } diff --git a/lib/svg-sanitizer/src/Sanitizer.php b/lib/svg-sanitizer/src/Sanitizer.php index 34f56d7c..58c81118 100644 --- a/lib/svg-sanitizer/src/Sanitizer.php +++ b/lib/svg-sanitizer/src/Sanitizer.php @@ -208,8 +208,6 @@ class Sanitizer return false; } - $this->removeDoctype(); - // Pre-process all identified elements $xPath = new XPath($this->xmlDocument); $this->elementReferenceResolver = new Resolver($xPath, $this->useNestingLimit); @@ -219,6 +217,8 @@ class Sanitizer // Grab all the elements $allElements = $this->xmlDocument->getElementsByTagName("*"); + // remove doctype after node elements have been analyzed + $this->removeDoctype(); // Start the cleaning proccess $this->startClean($allElements, $elementsToRemove); diff --git a/lib/svg-sanitizer/src/svg-scanner.php b/lib/svg-sanitizer/src/svg-scanner.php index 0da242f8..e5007713 100644 --- a/lib/svg-sanitizer/src/svg-scanner.php +++ b/lib/svg-sanitizer/src/svg-scanner.php @@ -12,9 +12,14 @@ require_once( __DIR__ . '/data/AttributeInterface.php' ); require_once( __DIR__ . '/data/TagInterface.php' ); require_once( __DIR__ . '/data/AllowedAttributes.php' ); require_once( __DIR__ . '/data/AllowedTags.php' ); +require_once( __DIR__ . '/data/XPath.php' ); +require_once( __DIR__ . '/ElementReference/Resolver.php' ); +require_once( __DIR__ . '/ElementReference/Subject.php' ); +require_once( __DIR__ . '/ElementReference/Usage.php' ); +require_once( __DIR__ . '/Exceptions/NestingException.php' ); +require_once( __DIR__ . '/Helper.php' ); require_once( __DIR__ . '/Sanitizer.php' ); - /* * Print array as JSON and then * exit program with a particular -- GitLab