कैसे पता करें कि कोई वेबसाइट किससे बनी है?
साइट का सॉफ़्टवेयर अपने भेजे हुए जवाब में ऐसे निशान छोड़ता है जिन्हें देखा जा सकता है: Server और X-Powered-By रिस्पॉन्स हेडर, PHPSESSID या JSESSIONID जैसे सेशन कुकी के नाम, स्क्रिप्ट पाथ, generator meta टैग और ख़ास मार्कअप। फ़िंगरप्रिंटिंग इन निशानों को जाने-पहचाने सिग्नेचर से मिलाती है। यह बताती है कि पेज अपने बारे में क्या ज़ाहिर करता है, यह नहीं कि क्या पक्के तौर पर इंस्टॉल है — क्योंकि निशान हटाए, नकली बनाए या JavaScript चलने के बाद ही जोड़े जा सकते हैं।
सुरक्षा नोट: रिस्पॉन्स हेडर में वर्ज़न नंबर होने से साइट को प्रकाशित कमज़ोरियों से जोड़ना आसान हो जाता है। Server और X-Powered-By की वैल्यू हटाएँ या छोटी करें, और हेडर चाहे जो कहें, सॉफ़्टवेयर को अपडेट रखें।
वेबसाइट टेक स्टैक डिटेक्टर कैसे इस्तेमाल करें
- किसी सार्वजनिक पेज का पता डालें, जैसे साइट का होम पेज।
- डिफ़ॉल्ट प्रोफ़ाइल रहने दें, या मोबाइल ब्राउज़र या Googlebot का User-Agent चुनें ताकि पता चले कि साइट उन्हें अलग पेज तो नहीं भेजती।
- "टेक्नोलॉजी पहचानें" दबाएँ और टेबल पढ़ें: हर पंक्ति में टेक्नोलॉजी, उसकी श्रेणी, दिखा हो तो वर्ज़न, संकेत की ताक़त और सबूत होता है।
- जिन पंक्तियों पर आप भरोसा करने वाले हैं उनका सबूत जाँचें, और वर्ज़न के खुलासे व एक पेज वाली जाँच की सीमाओं के लिए "संकेत क्या बताते हैं" पढ़ें।
वेबसाइट टेक स्टैक डिटेक्टर की खूबियाँ
- Mutqan सर्वर से तय हेडर प्रोफ़ाइल (Mutqan चेकर, मोबाइल ब्राउज़र या Googlebot का User-Agent) के साथ एक पेज फ़ेच करता है और पाँच रीडायरेक्ट तक फ़ॉलो करता है
- रिस्पॉन्स हेडर, कुकी के नाम, स्क्रिप्ट URL, generator meta टैग और HTML के टुकड़ों को 15 श्रेणियों के 200 से ज़्यादा हाथ से लिखे सिग्नेचर से मिलाता है — CMS और ई-कॉमर्स प्लेटफ़ॉर्म से लेकर CDN, एनालिटिक्स और टैग मैनेजर तक
- हर पंक्ति के पीछे का सबूत दिखाता है — वह हेडर, कुकी, स्क्रिप्ट या मार्कअप जो मेल खाया — ताकि हर पहचान पर आँख मूँदकर भरोसा करने के बजाय उसे जाँचा जा सके
- निशान कितने सटीक हैं और कितने स्वतंत्र निशान दिखे, इसके आधार पर हर पंक्ति को मज़बूत, मध्यम, कमज़ोर या अनुमानित बताता है, और किसी निशान में वर्ज़न हो तो उसे भी दिखाता है
- सॉफ़्टवेयर का नाम बताने वाले रिस्पॉन्स हेडर (Server, X-Powered-By, X-AspNet-Version, X-Generator, Via) की सूची देता है और वर्ज़न नंबर उजागर करने वालों को चिह्नित करता है
- साफ़ बताता है जब पेज पूरा नहीं पढ़ा जा सका: एरर स्टेटस, HTML के अलावा कोई रिस्पॉन्स, 512 KiB पर कटा हुआ बॉडी या 5,000 से ज़्यादा टैग
- इन्वेंटरी या सिक्योरिटी रिव्यू के लिए टेक्नोलॉजी टेबल को CSV में डाउनलोड करता है
इनपुट और आउटपुट
इनपुट
- वेबसाइट URL — कोई भी सार्वजनिक http:// या https:// पेज; सिर्फ़ होस्ट नाम देने पर https:// जोड़ दिया जाता है।
- इस रूप में फ़ेच करें — रिक्वेस्ट प्रोफ़ाइल: Mutqan चेकर का User-Agent, मोबाइल Chrome का मौजूदा User-Agent, या Googlebot का User-Agent (ख़ुद घोषित, Google की असली रिक्वेस्ट नहीं)।
आउटपुट
- सारांश — जिन टेक्नोलॉजी के संकेत मिले, मज़बूत संकेत (स्कोर 90 या ज़्यादा), श्रेणियाँ, HTTP स्टेटस, स्कैन हुई स्क्रिप्ट और दिखी कुकी।
- जिन टेक्नोलॉजी के संकेत मिले — नाम, श्रेणी, दिखा हो तो वर्ज़न, संकेत की ताक़त, स्कोर और मेल खाया सबूत; CSV में डाउनलोड हो सकता है।
- श्रेणी के अनुसार — वही टेक्नोलॉजी श्रेणियों में बँटी हुई।
- संकेत क्या बताते हैं — नतीजे का मतलब, वर्ज़न के खुलासे, और Cloudflare व अनुमानित पंक्तियों पर टिप्पणियाँ।
- सॉफ़्टवेयर का नाम बताने वाले हेडर, फ़ेच का ब्योरा, और पेज रीडायरेक्ट हुआ हो तो रीडायरेक्ट चेन।
वेबसाइट टेक स्टैक डिटेक्टर का उदाहरण
Cloudflare के पीछे एक WooCommerce दुकान
इनपुट:
वेबसाइट URL: https://shop.example.com/ · इस रूप में फ़ेच करें: Mutqan चेकर (डिफ़ॉल्ट)आउटपुट:
Technologies 5 · Strong signals 3 · Categories 5 · HTTP status 200 · Scripts scanned 1 · Cookies seen 1
Cloudflare — CDN / edge network — Strong (100): Header cf-ray: 8d2f1a2b3c4d5e6f-FRA · Header server: cloudflare
WordPress 6.6.2 — CMS / site builder — Strong (100): Script /wp-includes/js/jquery/jquery.min.js?ver=3.7.1 · Meta tag generator: WordPress 6.6.2 · HTML: /wp-content/plugins/ · HTML: /wp-includes/ · Implied by WooCommerce
WooCommerce — E-commerce — Strong (95): Cookie wp_woocommerce_session_abc · HTML: /wp-content/plugins/woocommerce/
jQuery 3.7.1 — JavaScript library — Moderate (85): Script /wp-includes/js/jquery/jquery.min.js?ver=3.7.1
PHP 8.2.24 — Programming language — Moderate (85): Header x-powered-by: PHP/8.2.24 · Implied by WordPress
The x-powered-by header discloses a software version (PHP/8.2.24).वेबसाइट टेक स्टैक डिटेक्टर के नतीजे कैसे पढ़ें
मज़बूत का मतलब है स्कोर 90 या ज़्यादा: कोई बहुत सटीक निशान (generator टैग, किसी वेंडर का अपना हेडर) या कई स्वतंत्र निशान एक-दूसरे से मेल खाते हैं। मध्यम (70–89) आमतौर पर एक अच्छा निशान होता है; कमज़ोर (70 से कम) एक आम निशान है जिसे हाथ से जाँचना चाहिए।
अनुमानित पंक्तियाँ सीधे नहीं दिखीं: वे किसी दूसरी पहचान से निकलती हैं, जैसे WordPress के पीछे PHP। जब कोई प्रोडक्ट दिखता भी है और अनुमानित भी होता है, तो उसके अपने निशान ही उसका स्कोर तय करते हैं।
स्कोर सबूत की रैंकिंग है, संभावना नहीं। साइट में ऐसी लाइब्रेरी हो सकती है जो इस्तेमाल ही न होती हो, माइग्रेशन के बाद पुराना generator टैग रह गया हो, या Server हेडर भ्रामक हो।
ख़ाली या छोटी सूची का मतलब यह नहीं कि साइट कुछ इस्तेमाल नहीं करती। सिंगल-पेज ऐप, टैग मैनेजर से लोड होने वाली स्क्रिप्ट और हेडर हटाने वाले सर्वर, सर्वर से आए HTML में कम निशान छोड़ते हैं।
वेबसाइट टेक स्टैक डिटेक्टर कब इस्तेमाल करें
- सिक्योरिटी असेसमेंट या पेनिट्रेशन टेस्ट से पहले, स्कोप वाली साइट के दिखने वाले सॉफ़्टवेयर की सूची बनाएँ और हेडर में उजागर होने वाले वर्ज़न नंबर नोट करें।
- पक्का करें कि माइग्रेशन सच में हुआ: नए CMS, CDN या एनालिटिक्स पर जाने के बाद देखें कि पुराने निशान हट गए और नए दिख रहे हैं।
- रीडिज़ाइन, इंटीग्रेशन या टेस्ट प्लान का दायरा तय करने से पहले जानें कि किसी प्रतिस्पर्धी या क्लाइंट की साइट किससे बनी है।
- प्राइवेसी रिव्यू पूरा है या नहीं, यह जाँचें: देखें कि पेज सीधे कौन-से एनालिटिक्स, टैग मैनेजर और मार्केटिंग पिक्सेल लोड करता है।
समस्या निवारण
- सिर्फ़ "Cloudflare" (या कोई और CDN) दिखता है: CDN Server हेडर बदल देता है और ओरिजिन छिपा देता है। CMS और फ़्रेमवर्क फिर भी कुकी और HTML में दिख सकते हैं; अगर पेज सिर्फ़ JavaScript का ढाँचा है, तो और कुछ ख़ास नहीं दिखेगा।
- पेज ने चैलेंज पेज के साथ 403 या 503 लौटाया: कुछ साइटें ऑटोमेटेड क्लाइंट को रोकती हैं या उन्हें बॉट-जाँच दिखाती हैं। तब पंक्तियाँ साइट का नहीं, चैलेंज पेज का हाल बताती हैं; मोबाइल प्रोफ़ाइल या साइट का कोई दूसरा पेज आज़माएँ।
- रिस्पॉन्स JSON या कोई फ़ाइल है, HTML नहीं: डिटेक्टर को होम पेज जैसे किसी HTML पेज पर चलाएँ; वरना सिर्फ़ हेडर और कुकी जाँची जाती हैं।
- "This address cannot be reached from the Mutqan server" जैसा इनकार: होस्ट किसी निजी या आरक्षित पते पर resolve होता है, या ऐसे पोर्ट पर है जिससे सर्वर नहीं जुड़ता। सिर्फ़ सार्वजनिक साइटें जाँची जा सकती हैं।
वेबसाइट टेक स्टैक डिटेक्टर के बारे में अक्सर पूछे जाने वाले सवाल
टूल को कैसे पता चलता है कि साइट कौन-सी टेक्नोलॉजी इस्तेमाल करती है?
यह उन निशानों को खोजता है जो हर प्रोडक्ट पेज में छोड़ता है: Server या X-Powered-By हेडर, PHPSESSID या wordpress_logged_in जैसी कुकी का नाम, /wp-includes/js/ जैसा स्क्रिप्ट पाथ, generator meta टैग या मार्कअप का कोई टुकड़ा। हर पंक्ति में मेल खाए निशान लिखे होते हैं, इसलिए सिर्फ़ लेबल पर भरोसा करने के बजाय आप ख़ुद सबूत देख सकते हैं।
संकेत की ताक़त और स्कोर का क्या मतलब है?
स्कोर इस बात से शुरू होता है कि पहला निशान कितना सटीक है (WordPress नाम वाला generator टैग किसी आम स्क्रिप्ट पाथ से ज़्यादा वज़नदार है), और हर अतिरिक्त स्वतंत्र निशान पर दस अंक बढ़ता है, अधिकतम 100 तक। अनुमानित पंक्तियाँ (जैसे WordPress से अनुमानित PHP) अपने स्रोत से दस अंक कम पाती हैं। यह सबूत की रैंकिंग है, इस बात की संभावना नहीं कि साइट वह प्रोडक्ट चलाती है।
जो टेक्नोलॉजी मुझे पता है कि साइट में है, वह क्यों नहीं दिख रही?
सिर्फ़ एक पेज पढ़ा जाता है, जैसा सर्वर भेजता है, JavaScript चलाए बिना। टैग मैनेजर से डाली गई लाइब्रेरी, सर्वर पर बने HTML में कोई निशान न छोड़ने वाले फ़्रेमवर्क, हेडर बदलने वाले प्रॉक्सी के पीछे का सॉफ़्टवेयर, या सिर्फ़ दूसरे पेजों पर इस्तेमाल होने वाले टूल नहीं दिखते। संकेत का न मिलना टेक्नोलॉजी के न होने का सबूत नहीं है।
क्या कोई साइट इन संकेतों को नकली बना या छिपा सकती है?
हाँ। हेडर हटाए या बदले जा सकते हैं, पेज में ऐसी लाइब्रेरी हो सकती है जिसका इस्तेमाल ही न हो, और कुछ साइटें जान-बूझकर भ्रामक Server वैल्यू भेजती हैं। नतीजों को वही मानें जो पेज अपने बारे में कहता है, और कोई अहम बात साइट के मालिक से पक्की करें।
इतनी सारी साइटों में Cloudflare क्यों दिखता है?
बहुत-सी साइटें Cloudflare के पीछे होती हैं, जो हर रिस्पॉन्स में cf-ray और server: cloudflare हेडर जोड़ता है। यह साइट के आगे खड़ा CDN है; उसके पीछे का ओरिजिन सर्वर आमतौर पर छिपा रहता है, इसलिए वेब सर्वर वाली पंक्ति ग़ायब हो सकती है या उसमें CDN का नाम आ सकता है।
तकनीकी नोट्स
पेज POST /api/v1/internet/http/fetch से माँगा जाता है: Mutqan सर्वर होस्ट को DNS over HTTPS से resolve करता है, निजी और आरक्षित पतों को ठुकराता है, चार तय हेडर सेट में से एक भेजता है और ज़्यादा से ज़्यादा पाँच रीडायरेक्ट फ़ॉलो करता है, हर एक को दोबारा जाँचकर। वह स्टेटस, हेडर (कई Set-Cookie वैल्यू एक साथ जोड़कर) और बॉडी के पहले 512 KiB लौटाता है; मिलान आपके ब्राउज़र में होता है।
पहचान सिग्नेचर मिलाकर होती है, अंदाज़े से नहीं। हर सिग्नेचर में हेडर, कुकी नाम, स्क्रिप्ट URL, meta टैग, HTML और पेज URL के पैटर्न होते हैं, जो हर प्रोडक्ट के दस्तावेज़ या उसके embed स्निपेट से लिखे गए हैं। स्कोर पहले निशान पर सिग्नेचर का बेस मान है, हर अगले अलग निशान पर दस अंक जुड़ते हैं और सीमा 100 है; किसी दूसरे से अनुमानित प्रोडक्ट (WooCommerce से WordPress, WordPress से PHP) उससे दस अंक कम पाता है। Server और Via हेडर फ़ील्ड RFC 9110 के §10.2.4 और §7.6.3 में परिभाषित हैं।
HTML को एक बार, टेक्स्ट की तरह, 2 MB और 5,000 टैग तक स्कैन किया जाता है; पैटर्न सीमित दोहराव वाले हैं, इसलिए बड़ा या शरारती पेज स्कैन को धीमा नहीं कर सकता। कुछ भी चलाया नहीं जाता, इसलिए JavaScript चलने के बाद ही दिखने वाला फ़्रेमवर्क यहाँ नज़र नहीं आता।
सीमाएँ और कार्यप्रणाली
एक पेज एक बार पढ़ा जाता है, Cloudflare नेटवर्क पर चलने वाले Mutqan सर्वर से, JavaScript चलाए बिना। सिर्फ़ दूसरे पेजों पर इस्तेमाल होने वाला, बाद में स्क्रिप्ट से लोड होने वाला या ब्राउज़र में रेंडर होने वाला सॉफ़्टवेयर नहीं दिखता।
सिग्नेचर की सूची हाथ से लिखी है और आम तौर पर इस्तेमाल होने वाले प्रोडक्ट कवर करती है; किसी दुर्लभ या कस्टम टेक्नोलॉजी का सिग्नेचर नहीं है, तो उसका नाम नहीं बताया जा सकता। साइट हेडर, कुकी और मार्कअप हटा या नकली बना सकती है।
ज़्यादा से ज़्यादा 512 KiB HTML पढ़ा जाता है; बहुत बड़े पेज के नीचे वाले निशान छूट जाते हैं, और नतीजा यह बताता है।
सुरक्षा और गोपनीयता
Mutqan सर्वर को सिर्फ़ आपका डाला हुआ URL भेजा जाता है, जो उस पेज को तय हेडर के साथ और आपकी किसी कुकी के बिना एक बार माँगता है और जवाब बिना रखे लौटा देता है। मिलान आपके ब्राउज़र में होता है और फ़ेच किया गया HTML कभी रेंडर नहीं होता।
संदर्भ
- OWASP Web Security Testing Guide (WSTG)वेब एप्लिकेशन और API की सुरक्षा कमज़ोरियों को परखने की संदर्भ कार्यप्रणाली, एक-एक टेस्ट के रूप में।
- Server header — MDNServer रिस्पॉन्स हेडर उस सॉफ़्टवेयर का नाम बताता है जिसने रिस्पॉन्स बनाया; MDN चेतावनी देता है कि इसमें बारीक वर्ज़न जानकारी ज्ञात कमज़ोरियाँ ढूँढना आसान बना सकती है।
- RFC 9110: HTTP SemanticsHTTP मेथड, हेडर फ़ील्ड, स्टेटस कोड और कंटेंट निगोशिएशन के अर्थ, वायर वर्ज़न से स्वतंत्र।