कोड में अदृश्य कैरेक्टर
सोर्स कोड में अदृश्य कैरेक्टर सिर्फ़ झंझट नहीं, सुरक्षा जोखिम हैं। एक दिशा-नियंत्रण कैरेक्टर किसी पंक्ति को एक क्रम में दिखा सकता है और दूसरे क्रम में कंपाइल करा सकता है, और एक ज़ीरो-विड्थ कैरेक्टर ऐसा आइडेंटिफ़ायर तोड़ सकता है जो दूसरे जैसा ही दिखता है। यह टूल इन्हें उजागर करता है और कोई भी दिखने वाला कैरेक्टर छुए बिना हटा देता है।
और देखें: क्या मिला, एक्स-रे व्यू और विकल्प
एक्स-रे व्यू
आपका टेक्स्ट, जिसमें हर छिपा कैरेक्टर लेबल के रूप में दिखता है। Unicode नाम देखने के लिए होवर करें।
क्या मिला
| कोड पॉइंट | कैरेक्टर | संख्या | कार्रवाई |
|---|
क्रम बदलने वाला हमला (Trojan Source)
दिशा बदलने वाले कैरेक्टर (जैसे U+202E) अपने बाद के टेक्स्ट का दिखने का क्रम पलट देते हैं। किसी कमेंट या स्ट्रिंग में ये समीक्षक को एक लॉजिक दिखा सकते हैं और कंपाइलर से दूसरा चलवा सकते हैं। यह हमला 2021 में प्रलेखित हुआ (Boucher और Anderson) और ज़्यादातर भाषाओं पर लागू है। टूल में उदाहरण लोड करके एक्स-रे व्यू खोलें: लाल बिंदु दिशा बदलने और आइसोलेट करने वाले कैरेक्टरों पर होते हैं।
कोड में दूसरे जोखिम
- कंट्रोल कोड टर्मिनल सेशन से (ESC, U+001B), जो पार्सर तोड़ते हैं।
- नो-ब्रेक स्पेस जो इंडेंटेशन में घुसकर स्पेस-संवेदनशील भाषाएँ तोड़ते हैं।
- BOM (U+FEFF) फ़ाइल की शुरुआत में, जो JSON पार्सिंग और CSV हेडर बिगाड़ता है।
अक्सर पूछे जाने वाले सवाल
ये कैरेक्टर मेरे कोड में घुसते कैसे हैं?
वेब पेजों, PDF, AI चैट या दस्तावेज़ों से कॉपी करने पर। क्रम बदलने वाले हमले में इन्हें जान-बूझकर भी डाला जा सकता है।
क्या सफ़ाई से मेरे कोड का लॉजिक बदलता है?
नहीं। यह केवल अदृश्य कैरेक्टर हटाती है और असामान्य स्पेस सामान्य करती है; हर दिखने वाला कैरेक्टर उसी क्रम में, वैसा ही रहता है।