SVG फ़ाइल से स्क्रिप्ट और छिपा कोड हटाएं
07 यह फ़ोटो फ़ॉर्मैट है ही नहीं - बिल्कुल अलग खतरा
इस साइट का हर और फ़ॉर्मैट बाइनरी कंटेनर में पैक की गई रास्टराइज़्ड पिक्सेल होती हैं। SVG अलग है: यह
ग्राफ़िक्स बताने वाला शुद्ध XML टेक्स्ट है, और XML में <script> एलिमेंट, इनलाइन
इवेंट हैंडलर (onload=, onclick=), या XXE एंटिटी डिक्लेरेशन हो सकते हैं - यह
फ़ाइल के साथ चलने वाला सिर्फ़ डेटा नहीं, असली कोड है। यहां EXIF/GPS का खतरा लगभग नहीं है (SVG कैमरे का
आउटपुट नहीं है), लेकिन एक्टिव कंटेंट का खतरा असली है, और यह इसी फ़ॉर्मैट के लिए खास है।
और गहराई से जानें: SVG को बाकी फ़ॉर्मैट की तरह "साफ़" क्यों नहीं किया जा सकता
किसी भी XML/स्क्रिप्ट का ऐसा कोई सुरक्षित हिस्सा नहीं है जिसे रखा जा सके, ताकि आप सिर्फ़ "खराब हिस्सा"
हटा सकें - इसलिए यह टूल ऐसा करने की कोशिश ही नहीं करता। हर SVG को रास्टराइज़ किया जाता है: एक
सुरक्षा-मज़बूत रेंडरर से फ़्लैट पिक्सेल में बदला जाता है, जो कभी
<script> कंटेंट नहीं चलाता, और रेंडरिंग के दौरान कोई नेटवर्क रिक्वेस्ट नहीं
भेजता, और उसके बाद नतीजे में मिले पिक्सेल किसी भी और फ़ॉर्मैट जैसी ही रीकंस्ट्रक्शन प्रक्रिया से
गुज़रते हैं। आउटपुट हमेशा PNG होता है - "साफ़ की गई SVG" जैसी कोई चीज़ यहां जानबूझकर मौजूद नहीं है,
इसकी वजह तुलना पेज पर बताई गई है।
रास्टराइज़ करने से पहले असल में क्या रिपोर्ट किया जाता है
रिपोर्ट में ठीक-ठीक वह बताया जाता है जो हटाने से पहले मिला - <script> एलिमेंट,
javascript: URI, इनलाइन इवेंट हैंडलर एट्रिब्यूट, <foreignObject> एलिमेंट,
और DOCTYPE एंटिटी डिक्लेरेशन - ताकि आपको सिर्फ़ "साफ़ हो गया" का एक सामान्य संदेश नहीं, बल्कि फ़ाइल में
असल में क्या था, यह दिखे।