Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
svg-sanitizer — PHP लाइब्रेरी जो अपलोड किए गए या इनलाइन किए गए SVG फ़ाइलों में XSS और स्क्रिप्ट इंजेक्शन को रोकने के लिए टैग, विशेषताओं और रिमोट संदर्भों को फ़िल्टर करके अविश्वसनीय SVG/XML को सैनिटाइज़ करती है। | Kitploit
उपकरण/GitHubGitHub/darylldoyle/svg-sanitizer
रक्षात्मक उपकरणस्थैतिक विश्लेषणभेद्यता विश्लेषणवेब सुरक्षाउपयोगिताएँ और फ्रेमवर्क
GitHubdarylldoyle/svg-sanitizer

svg-sanitizer

PHP लाइब्रेरी जो अपलोड किए गए या इनलाइन किए गए SVG फ़ाइलों में XSS और स्क्रिप्ट इंजेक्शन को रोकने के लिए टैग, विशेषताओं और रिमोट संदर्भों को फ़िल्टर करके अविश्वसनीय SVG/XML को सैनिटाइज़ करती है।

रिपॉजिटरी देखें
55269178 दिन पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

svg-sanitizer

Build Status Code Coverage

यह PHP में एक उचित SVG सैनिटाइज़र बनाने का मेरा प्रयास है। यह कार्य काफी हद तक DOMPurify से लिया गया है।

इंस्टॉलेशन

या तो composer के माध्यम से enshrined/svg-sanitize को require करें या रेपो डाउनलोड करके पुराने तरीके से include करें!

उपयोग

इसका उपयोग करना काफी आसान है। enshrined\svgSanitize\Sanitizer का एक नया इंस्टेंस बनाएं और फिर अपने असुरक्षित SVG/XML को पास करते हुए sanitize को कॉल करें

बुनियादी उदाहरण

use enshrined\svgSanitize\Sanitizer;

// Create a new sanitizer instance
$sanitizer = new Sanitizer();

// Load the dirty svg
$dirtySVG = file_get_contents('filthy.svg');

// Pass it to the sanitizer and get it back clean
$cleanSVG = $sanitizer->sanitize($dirtySVG);

// Now do what you want with your clean SVG/XML data

आउटपुट

यह या तो एक सैनिटाइज़ किया गया SVG/XML स्ट्रिंग लौटाएगा या बूलियन false यदि XML पार्सिंग विफल रही (आमतौर पर खराब फ़ॉर्मेटेड फ़ाइल के कारण)।

यह उन इनपुट के लिए भी false लौटाता है जिन्हें यह XML पार्सर को नहीं सौंपेगा:

  • 4,096 से अधिक विशेषताओं वाला एक एलिमेंट
  • UTF-16 या UTF-32 इनपुट में आंतरिक DTD
  • ऐसी एन्कोडिंग जिसका मार्कअप सादा ASCII नहीं है, जैसे EBCDIC या UTF-7
  • SVG के अलावा किसी अन्य नेमस्पेस में <svg> रूट

getXmlIssues() बताता है कि क्यों।

विकल्प

आप क्रमशः Sanitizer::setAllowedTags और Sanitizer::setAllowedAttrs विधियों का उपयोग करके टैग और विशेषताओं की अपनी व्हाइटलिस्ट पास कर सकते हैं।

इन विधियों के लिए आवश्यक है कि आप enshrined\svgSanitize\data\TagInterface या enshrined\svgSanitize\data\AttributeInterface को लागू करें।

<use> डिफ़ॉल्ट रूप से अनुमत है, संदर्भ कितनी दूर तक विस्तारित हो सकते हैं (useThreshold()) और नेस्ट हो सकते हैं (setUseNestingLimit()) की सीमाओं के अधीन। यदि आपको इसकी आवश्यकता नहीं है, उदाहरण के लिए क्योंकि आप अपने पृष्ठों में अविश्वसनीय SVG को इनलाइन करते हैं, तो उस पूरे क्षेत्र को हटाने के लिए use को अपनी टैग अनुमति सूची से बाहर रखें।

रिमोट संदर्भ हटाएँ

आपके पास उन विशेषताओं को हटाने का विकल्प है जो रिमोट फ़ाइलों को संदर्भित करती हैं, यह HTTP लीक को रोकेगा लेकिन सैनिटाइज़र पर अतिरिक्त भार जोड़ेगा।

यह डिफ़ॉल्ट रूप से false है, संदर्भ हटाने के लिए इसे true पर सेट करें।

$sanitizer->removeRemoteReferences(true);

सक्षम होने पर, रिमोट संदर्भ <style> एलिमेंट्स के अंदर CSS से और विशेषताओं में CSS से भी हटा दिए जाते हैं (url(), @import, image-set(), और रिमोट URL से शुरू होने वाले उद्धृत स्ट्रिंग्स)। srcset विशेषताएँ पूरी तरह से हटा दी जाती हैं, क्योंकि उनमें URL की सूची होती है। यह CSS प्रबंधन सर्वोत्तम-प्रयास है: यह पूर्ण CSS पार्सर नहीं है। इसे गारंटी के बजाय गहन-रक्षा के रूप में मानें, और अविश्वसनीय CSS को उस बिंदु पर अलग करें जहाँ SVG एम्बेड किया गया है।

नोट: यदि किसी <style> एलिमेंट या style विशेषता में कोई रिमोट संदर्भ है जो हटा दिया जाता है, तो उसी ब्लॉक में कोई भी CSS एस्केप अनुक्रम आउटपुट में सामान्यीकृत (डिकोड) कर दिए जाते हैं। यह अर्थपूर्ण रूप से समान CSS है लेकिन लेखक द्वारा हाथ से लिखे गए एस्केप को फिर से लिख देगा।

सैनिटाइज़ेशन समस्याएँ देखना

आप सैनिटाइज़ेशन के दौरान हुई समस्याओं की एक सरणी लौटाने के लिए getXmlIssues() विधि का उपयोग कर सकते हैं।

यह लॉगिंग के लिए या उपयोगकर्ता को यह प्रतिक्रिया देने के लिए उपयोगी हो सकता है कि किसी SVG को क्यों अस्वीकार किया गया।

$issues = $sanitizer->getXmlIssues();

सूची में अधिकतम 1,000 समस्याएँ होती हैं। यदि अधिक हैं, तो अंतिम प्रविष्टि बताती है कि कितनी छोड़ी गईं।

मिनिफिकेशन

आप $sanitizer->minify(true); कॉल करके XML आउटपुट को मिनिफाई कर सकते हैं।

डेमो

यहाँ एक डेमो उपलब्ध है: http://svg.enshrined.co.uk/

WordPress

मैंने अभी-अभी इस कोड वाला एक WordPress प्लगइन जारी किया है ताकि आप अपने WordPress अपलोड को सैनिटाइज़ कर सकें। यह WordPress प्लगइन निर्देशिका से उपलब्ध है: https://wordpress.org/plugins/safe-svg/

Drupal

Michael Potter ने कृपया इस लाइब्रेरी के लिए एक Drupal मॉड्यूल बनाया है जो यहाँ उपलब्ध है: https://www.drupal.org/project/svg_sanitizer

TYPO3

यह SVG सैनिटाइज़र लाइब्रेरी TYPO3 v9 और बाद के संस्करणों के कोर में डिफ़ॉल्ट रूप से उपयोग की जाती है। अधिक जानकारी के लिए संबंधित चेंजलॉग प्रविष्टि देखें।

परीक्षण

आप इन्हें इस पैकेज की आधार निर्देशिका से vendor/bin/phpunit चलाकर चला सकते हैं।

CLI के माध्यम से फ़ाइलों की स्टैंडअलोन स्कैनिंग

gudmdharalds के काम के लिए धन्यवाद, अब एक स्टैंडअलोन स्कैनर है जिसका उपयोग CLI के माध्यम से किया जा सकता है।

कोई भी त्रुटि JSON प्रारूप में आउटपुट होगी। उदाहरण के लिए PR देखें।

इसका उपयोग इस प्रकार करें: php svg-scanner.php ~/svgs/myfile.svg

करने के लिए

SVGs/XML के लिए अधिक व्यापक परीक्षण अच्छा रहेगा, मैं जल्द ही इन्हें जोड़ने का प्रयास करूँगा। यदि आप मेरे लिए ऐसा करना चाहें, तो कृपया करें और एक PR बनाएँ!

टूल डाउनलोड करें