Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
svg-sanitizer — مكتبة Java تعقّم ملفات SVG عبر إزالة JavaScript ومعالجات الأحداث المضمّنة ووسوم script مع حظر تحميل الموارد الخارجية لمنع XSS. | Kitploit
أدوات/GitHubGitHub/borewit/svg-sanitizer
أدوات دفاعيةالتحليل الثابتتحليل الكودأمن الويبالأدوات والمكونات
GitHubborewit/svg-sanitizer

svg-sanitizer

مكتبة Java تعقّم ملفات SVG عبر إزالة JavaScript ومعالجات الأحداث المضمّنة ووسوم script مع حظر تحميل الموارد الخارجية لمنع XSS.

عرض المستودع
221منذ 2 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CI Maven Central javadoc

SVG Sanitizer

SVG Sanitizer هي مكتبة Java مصممة لتنظيف ملفات SVG عبر إزالة JavaScript التي قد تكون خطيرة، وحظر تحميل الموارد الخارجية، ومنع ثغرات XSS (البرمجة النصية عبر المواقع). وهي مفيدة لضمان أن تكون ملفات SVG آمنة للاستخدام في مجموعة متنوعة من التطبيقات، بما في ذلك بيئات الويب.

الميزات

  • يزيل JavaScript من ملفات SVG، بما في ذلك معالجات الأحداث المضمّنة ووسوم <script>.
  • يحظر تحميل الموارد الخارجية، بما في ذلك سمات href وxlink:href التي تشير إلى عناوين URL خارجية.
  • يمنع ثغرات XSS عبر تعقيم العناصر والسمات الخطرة.
  • يمكن دمجه بسهولة في مشاريع Java كمكتبة.
  • يمكنه التعامل مع ملفات SVG الضخمة، حيث يتم تعقيم SVG بأسلوب التدفق (streaming)

الاستخدام

اعتماد Maven

لاستخدام SVG Sanitizer في مشروع Java الخاص بك، أضف اعتماد Maven ‏io.github.borewit:svg-sanitizer.

public class SVGSanitizerExample {
  public static void main(String[] args) {
    String dirtySvgContent = """
      <svg xmlns="http://www.w3.org/2000/svg" width="400" height="400" viewBox="0 0 124 124" fill="none">
        <rect width="124" height="124" rx="24" fill="#000000"/>
          <script type="text/javascript">
            alert(0x539);
         </script>
      </svg>""";
    try {
      String sanitizedSvg = SVGSanitizer.sanitize(dirtySvgContent);
      System.out.println(sanitizedSvg);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

مما سيُخرج ملف SVG المُعقَّم:

<svg xmlns="http://www.w3.org/2000/svg" fill="none" height="400" viewBox="0 0 124 124" width="400">
    <rect fill="#000000" height="124" rx="24" width="124"/>
</svg>

عقّم من InputStream إلى OutputStream:

import java.io.*;

public class SVGSanitizerExample {
  public static void main(String[] args) throws Exception {
    File inputFile = new File("unsafe.svg");
    File outputFile = new File("sanitized.svg");

    try (InputStream inputStream = new FileInputStream(inputFile)) {
         try (OutputStream outputStream = new FileOutputStream(outputFile)) {
            SVGSanitizer.sanitize(inputStream, outputStream);
          }
    }

    System.out.println("Sanitized SVG has been saved to " + outputFile.getAbsolutePath());
  }
}

عقّم من InputStream إلى InputStream:

import java.io.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;

public class SVGSanitizerExample {
  public static void main(String[] args) throws Exception {
    File inputFile = new File("unsafe.svg"); // Potentially unsafe SVG file

    try (InputStream inputStream = new FileInputStream(inputFile);
         InputStream sanitizedStream = SVGSanitizer.sanitize(inputStream)) {

      // Pass the sanitized stream to an XML parser (without converting it to a String)
      DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
      DocumentBuilder builder = factory.newDocumentBuilder();
      Document doc = builder.parse(sanitizedStream);

      System.out.println("SVG file successfully parsed after sanitization.");
    }
  }
}

الطرق المتاحة

public static String sanitize(String svgContent)

لا ينبغي استخدام هذه الطريقة إلا إذا لم يكن تحميل ملف SVG بالكامل في الذاكرة مشكلة.

public static void sanitize(InputStream inputStream, OutputStream outputStream)

يكتب ملف SVG المُعقَّم إلى outputStream المحدد

public static InputStream sanitize(InputStream inputStream)

يعمل كمرشّح، ويعيد InputStream جديدًا يحتوي على SVG المُعقَّم.

اعتبارات الأمان

قد تحتوي ملفات SVG التي يرفعها المستخدمون على محتوى ضار قد يُنفَّذ في سياق المتصفح. يُعدّ تعقيم ملفات SVG خطوة مهمة، لكن ينبغي دمجه مع تدابير أخرى للحماية الكاملة. راجع أفضل ممارسات أمان SVG للحصول على نظرة عامة أوسع.

الترخيص

هذا المشروع مرخّص بموجب MIT License

تنزيل الأداة