decmuc/svgsanitizer 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

decmuc/svgsanitizer

Composer 安装命令:

composer require decmuc/svgsanitizer

包简介

A lightweight PHP library to validate and block unsafe SVG content, preventing XSS and code injection.

README 文档

README

PHP License: MIT

SvgSanitizer is a lightweight PHP library that validates SVG files or fragments and blocks potentially harmful code like JavaScript, embedded objects, inline event handlers, or suspicious Base64 payloads. It helps protect your application from XSS and injection attacks via SVG uploads.

SvgSanitizer ist eine kompakte PHP-Bibliothek zur Prüfung von SVG-Dateien oder -Inhalten. Sie erkennt und blockiert potenziell schadhaften Code wie JavaScript, eingebettete Objekte, Inline-Handler oder verdächtige Base64-Payloads. Damit schützt sie deine Anwendung vor XSS- oder Injektionsangriffen durch manipulierte SVGs.

📦 Installation

English

Use Composer to add the package:

composer require decMuc/SvgSanitizer

Deutsch

Füge die Bibliothek über Composer hinzu:

composer require decMuc/SvgSanitizer

⚙️ Autoloading

English

Make sure Composer's autoload is enabled:

Deutsch

Stelle sicher, dass Composer's Autoload aktiviert ist:`

require_once 'vendor/autoload.php';

🚀 Usage / Nutzung

English

Use the SvgSanitizer class to check if an SVG is safe. Example:

Deutsch

Verwende die Klasse SvgSanitizer, um zu prüfen, ob ein SVG sicher ist. Beispiel:

<?php
require_once 'vendor/autoload.php';

use decMuc\SvgSanitizer\SvgSanitizer;

// SVG-Datei einlesen
$svg = file_get_contents('upload/logo.svg');

// Sicherheitsprüfung & Reinigung durchführen
$result = SvgSanitizer::isSafe($svg);
if ($result['status']) {
    // SVG kann sicher weiterverarbeitet werden
    file_put_contents("cleaned.svg", $result['svg']);
    echo 'SVG ist sicher!';
} else {
    // Datei ablehnen oder protokollieren
    echo $result['msg'];
}

🔧 Methods / Methoden

  • English:

  • SvgSanitizer::isSafe(string $svg): array
    Returns ['status' => true, 'svg' => cleaned SVG, 'msg' => ''] if the SVG is clean, or ['status' => false, 'svg' => '', 'msg' => error message] if suspicious patterns or errors are found.

  • Deutsch:

  • SvgSanitizer::isSafe(string $svg): array – Gibt ein Array zurück: ['status' => true, 'svg' => bereinigtes SVG, 'msg' => ''] wenn das SVG sauber ist, oder ['status' => false, 'svg' => '', 'msg' => Fehlermeldung] wenn verdächtige Patterns oder Fehler gefunden wurden.

⚠️ Example Error Handling / Beispielhafte Fehlermeldungen

English

SvgSanitizer checks SVG content on three levels: First, known exploit patterns are reliably detected and immediately blocked using a blacklist. Next, the SVG is validated and cleaned based on a strict whitelist of allowed tags and attributes. Finally, special rules are applied to styles and embedded data to eliminate hidden risks.

Only SVGs that pass all checks are accepted and returned.

Deutsch

SvgSanitizer prüft SVG-Inhalte auf drei Ebenen: Zunächst werden bekannte Exploit-Muster mit einer Blacklist zuverlässig erkannt und sofort blockiert. Anschließend wird das SVG anhand einer strengen Whitelist zulässiger Tags und Attribute geprüft und bereinigt. Abschließend werden spezielle Regeln auf Styles und eingebettete Daten angewendet, um auch versteckte Gefahrenquellen auszuschließen.

Nur SVGs, die alle Prüfungen bestehen, werden akzeptiert und ausgegeben.

📝 License / Lizenz

English

This project is licensed under the MIT License. See LICENSE for details.

Deutsch

Dieses Projekt ist unter der MIT-Lizenz lizenziert. Siehe LICENSE für Details.

decmuc/svgsanitizer 适用场景与选型建议

decmuc/svgsanitizer 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 9 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 05 月 24 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 decmuc/svgsanitizer 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 decmuc/svgsanitizer 我们能提供哪些服务?
定制开发 / 二次开发

基于 decmuc/svgsanitizer 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 9
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 8
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-05-24