QR कोड सुरक्षा: डायनामिक QR के जोखिम और छोटे URL के जाल
सारांश (TL;DR)
कुछ दिन पहले एक कैफ़े में मेनू का QR स्कैन किया तो वह अनजाने ql.st शॉर्टनर पर ले गया। पलटकर देखा तो मूल QR पर नया स्टीकर चिपका हुआ था। मालिक को हफ़्तों से पता ही नहीं था। QR को “हैक” करने वाले परिष्कृत बग दुर्लभ हैं; असली घटनाएँ अक्सर ऐसे ही एक स्टीकर से शुरू होती हैं।
QR कोड “बस एक इमेज” नहीं है, बल्कि URL या टेक्स्ट की दृश्य-एन्कोडेड संरचना है। इसलिए QR में ख़ुद कोई सुरक्षा फीचर नहीं है, और सुरक्षा लगभग पूरी तरह गंतव्य URL और QR जनरेट करने के तरीक़े से तय होती है। स्टैटिक QR में URL कोड के अंदर लिखा रहता है और पब्लिश होने के बाद बदलाव संभव नहीं। डायनामिक QR का कंटेंट बदला जा सकता है, पर वह रीडायरेक्टर सर्वर पर निर्भर हो जाता है — सेवा बंद हो या स्वामित्व बदल जाए, तो स्कैन का परिणाम पूरी तरह अलग पेज पर जा सकता है। छोटे URL में भी एक्सपायरी, हाईजैकिंग और ट्रैकिंग की दिक़्क़तें हैं, इसलिए वे सार्वजनिक प्रिंट, लंबे समय के आर्काइव या ऑफ़लाइन सामग्री के लिए अनुकूल नहीं हैं। सबसे सुरक्षित डिफ़ॉल्ट है अपने डोमेन का स्टैटिक URL स्टैटिक QR में डालना, और अगर कैंपेन स्वरूप में ट्रैकिंग ज़रूरी हो, तो विश्वसनीय प्रदाता का डायनामिक QR उपयोग करें और साथ में सेवा समाप्ति के बाद की रीडायरेक्ट योजना भी तैयार रखें।
पृष्ठभूमि
QR कोड का आधिकारिक मानक ISO/IEC 18004 है, जिसमें वर्ज़न 1 से 40 तक होते हैं; वर्ज़न बढ़ने पर मॉड्यूल (ग्रिड सेल) बढ़ते हैं और अधिक डेटा समा सकता है। हर QR एक निश्चित मात्रा में त्रुटि सुधार (Reed-Solomon) डेटा भी लेता है, और उसके चार स्तर हैं।
- L: लगभग 7% तक डेटा हानि रिकवर
- M: लगभग 15% तक
- Q: लगभग 25% तक
- H: लगभग 30% तक
उच्च त्रुटि-सुधार स्तर चुनने से प्रिंट गंदा होने या लोगो ढकने पर भी स्कैन संभव रहता है, लेकिन मॉड्यूल घनत्व बढ़ जाता है, इसलिए बहुत छोटे प्रिंट पर स्कैन मुश्किल हो सकता है। बिज़नेस कार्ड या पोस्टर पर आमतौर पर M डिफ़ॉल्ट है, और लोगो बीच में डालना हो तो Q या H उचित हैं।
स्टैटिक QR में URL सीधे मॉड्यूल में रहता है, इसलिए स्कैन का नतीजा स्थायी होता है। डायनामिक QR में “छोटा रीडायरेक्ट URL” रहता है और सेवा प्रदाता गंतव्य बदल सकता है। यह लचीलापन ही दीर्घकालिक जोखिम की जड़ बनता है।
तुलना और डेटा
| मानदंड | स्टैटिक QR | डायनामिक QR |
|---|---|---|
| एन्कोडेड URL | अंतिम गंतव्य URL | रीडायरेक्टर का छोटा URL |
| स्कैन ट्रैकिंग | डिफ़ॉल्ट रूप से नहीं | मुख्य फीचर के रूप में उपलब्ध |
| एक्सपायरी जोखिम | जब तक डोमेन है, तब तक नहीं | प्रदाता कॉन्ट्रैक्ट, प्लान, बंदी पर निर्भर |
| तृतीय-पक्ष पर निर्भरता | नहीं | रीडायरेक्टर प्रदाता |
| फ़िशिंग जोखिम | गंतव्य URL जाँचना ही काफ़ी | रीडायरेक्टर हैक या स्वामित्व बदलने पर गंतव्य बदल सकता है |
| परिवर्तन संभव | नहीं (नया बनाना होगा) | हाँ (लचीला) |
“छोटा URL दिखने में साफ़ होता है” — यह फ़ायदा ही कमज़ोरी बन जाता है क्योंकि यूज़र अपनी आँखों से URL की पुष्टि नहीं कर सकते।
वास्तविक परिदृश्य
परिदृश्य 1 — विज़िटिंग कार्ड और पोस्टर जैसे ऑफ़लाइन प्रिंट। 2019 का एक कार्ड हाल ही में फिर निकाला; उस पर छपा bit.ly लिंक अब 404 दे रहा था। जाहिर है ट्रैकिंग सेवा का कॉन्ट्रैक्ट टूट चुका था। स्टैटिक QR में अपने डोमेन का कैननिकल URL ही लंबे समय टिकता है। साइज़ जितनी छोटी, त्रुटि-सुधार स्तर उतना कम रखें और मॉड्यूल कम हों, तभी स्कैन सफलता दर बढ़ती है।
परिदृश्य 2 — मार्केटिंग कैंपेन परफ़ॉर्मेंस। एक स्टार्टअप ने एग्ज़िबिशन बूथ में डायनामिक QR इस्तेमाल किया और तीन महीने बाद सेवा ने मुफ़्त प्लान हटा दिया, सभी QR अचानक “प्लान एक्सपायर्ड” पेज पर पुनर्निर्देशित होने लगे। मैं जब भी संभव हो yourdomain.com/go/summer-2026 जैसे अपने डोमेन शॉर्ट-पाथ + UTM कॉम्बिनेशन को चुनता हूँ। जब तक डोमेन अपना है, समय-सीमा नहीं।
परिदृश्य 3 — डॉक्युमेंट अखंडता और प्रमाणीकरण। QR में URL की जगह डॉक्युमेंट हैश या साइन्ड URL पैरामीटर (?d=abc123&sig=...) एन्कोड करें, ताकि स्कैन के बाद मूल से मिलान किया जा सके। मैंने एक सर्टिफ़िकेट प्रोजेक्ट में SHA-256 के पहले 16 अक्षर और HMAC हस्ताक्षर डाले, जिससे QR वर्ज़न 10+ तक पहुँच गया और प्रिंट साइज़ फिर से संतुलित करनी पड़ी।
आम ग़लतफ़हमियाँ
“QR को ही हैक किया जा सकता है।” QR केवल डेटा एन्कोडिंग मानक है, उसे “भेदना” दुर्लभ हमला है। असली जोखिम है कि QR में रखा गया URL फ़िशिंग·मैलवेयर की ओर ले जाए, या मौजूदा QR के ऊपर स्टीकर चिपकाकर गंतव्य बदला जाए। सार्वजनिक जगहों के QR पर स्टीकर की भौतिक जाँच मूलभूत आदत है।
“छोटा URL साफ़ दिखता है, तो बेहतर है।” दृष्टि से सही है, पर यूज़र URL सत्यापित नहीं कर सकते, और शॉर्टनर बंद हो, बिक जाए या हैक हो, तो सब प्रिंट का नतीजा बदल जाता है। दीर्घकालिक प्रिंट में अपने डोमेन का लंबा URL ही सुरक्षित है।
“त्रुटि-सुधार H हमेशा सर्वोत्तम है।” H लोगो डालने के लिए अच्छा है, पर मॉड्यूल बढ़ने से छोटे प्रिंट में स्कैन दर गिरती है।
“QR देखकर ही पता चल जाता है कहाँ जाएगा।” iOS 17/18 का डिफ़ॉल्ट कैमरा URL बैनर दिखाता है, पर कुछ Android OEM कैमरे और थर्ड-पार्टी स्कैनर एक टैप पर सीधे ब्राउज़र खोल देते हैं। पब्लिक Wi-Fi लॉगिन QR के भेस में फ़िशिंग इस ऑटो-ओपन का शिकार करती है।
चेकलिस्ट
- जीवन-काल कितना लंबा है?
- कई साल → स्टैटिक QR + अपना डोमेन।
- कैंपेन-अल्पकालिक → डायनामिक QR या UTM पैरामीटर।
- क्या ट्रैकिंग अनिवार्य है?
- नहीं → स्टैटिक QR काफ़ी।
- हाँ → विश्वसनीय प्रदाता का डायनामिक QR, साथ में बैकअप रीडायरेक्ट योजना।
- प्रिंट आकार क्या है?
- बहुत छोटा → डेटा कम रखें, त्रुटि-सुधार M।
- मध्यम-बड़ा → लोगो रखने पर Q या H।
- सार्वजनिक स्थान पर है?
- हाँ → स्टीकर चिपकाए जाने की जाँच नियमित रखें।
- गंतव्य URL सुरक्षित है?
- HTTPS, अपना डोमेन, वर्तमान में वैध — जाँच ज़रूरी।
- कहाँ बनाएँगे?
- संभव हो तो ऑफ़लाइन·ब्राउज़र-इन जनरेशन, ताकि URL बाहरी सर्वर पर लॉग न हो।
संबंधित टूल
Patrache Studio का QR कोड जनरेटर ब्राउज़र के अंदर QR बनाता है, इसलिए आपका डाला हुआ URL बाहरी सर्वर पर नहीं जाता। QR जिस इमेज में जोड़ी जाती है उसे वेब पर डालना हो तो इमेज कंप्रेशन गाइड से फ़ॉर्मैट चुनें, और QR किसी डॉक्युमेंट में डालकर भेजना हो तो ब्राउज़र PDF मर्ज और स्प्लिट के फ़्लो से संगत गोपनीयता-सीमा बनाए रखी जा सकती है।
संदर्भ
- ISO/IEC 18004:2015, “QR Code bar code symbology specification” — official title (not free to distribute).
- UK NCSC, “Guidance on QR code use” — https://www.ncsc.gov.uk/guidance/qr-codes
- Anti-Phishing Working Group, general phishing resources — https://www.phishing.org/phishing-examples
- MDN, URL structure and validation — https://developer.mozilla.org/en-US/docs/Web/API/URL