क्या यह जानना संभव है कि प्रोग्रामिंग भाषा वेब-साइट का क्या उपयोग करती है?


48

उदाहरण के लिए, stackexchange.comसाइट के मालिक या Google से वेबसाइट को विकसित करने के बारे में उनकी जानकारी के बिना, क्या यह जानना संभव है कि बैक एंड में किस भाषा का उपयोग किया जाता है?

ऐसा लगता है, वेबसाइट के पास .extensionबार नहीं है , उदाहरण के लिए, .phpजो इंगित किया जा सकता है कि किस में विकसित किया गया है PHP, लेकिन विस्तार के बिना, मैं यह कैसे जान सकता हूं?


43
यह ध्यान दिया जाना चाहिए कि URL द्वारा अनुरोधित फ़ाइल के विस्तार को फाइलसिस्टम पर फ़ाइल में सीधे मैप करने की आवश्यकता नहीं है। एक .phpसी में एक सीजीआई-स्क्रिप्ट की तरह एक एक्सटेंशन को आसानी से मैप कर सकता है या जावा में लिखा एक सर्वलेट।
maple_shaft

1
@ प्रोजेन कम्युनिटी विकी का इस्तेमाल नहीं किया जाना चाहिए क्योंकि आप प्रस्ताव करते हैं । मुझे पता है कि आमतौर पर अतीत में ऐसा ही दुर्व्यवहार किया गया था, लेकिन आइए हम इसके बारे में भूलने की कोशिश करें ...
yannis

6
सख्ती से बोलना असंभव है। अधिकांश कोई भी भाषा किसी अन्य भाषा का पूरी तरह से अनुकरण कर सकती है - किसी भी "कहानी को बताएं" संकेतों को शामिल करने के लिए।
एमोरी

2
अपने भोले दृष्टिकोण से, मैं इस जानकारी का एक आवेदन नहीं देख सकता। आप इस जानकारी के साथ क्या करेंगे?
तेहनीत

5
इसके अलावा, साइटों को शोषण के लिए असुरक्षित पाया जाता है।
एरिक रेपेने

जवाबों:


82

संकेतक हैं। कुछ खोजने में आसान हैं, अन्य कठिन हैं।

  • फ़ाइल एक्सटेंशन: .phpइंगित करता है कि साइट PHP में लिखी गई है, .aspक्लासिक ASP को .aspxइंगित करता है, ASP.NET को .jspइंगित करता है , जावा JSPs को इंगित करता है, ...
  • कुकी नाम: JSESSIONIDजावा सर्वर में व्यापक रूप से उपयोग किया जाने वाला कुकी नाम है
  • हेडर: कुछ सिस्टम HTTP हेडर को उनकी प्रतिक्रियाओं में जोड़ते हैं
  • विशिष्ट HTML सामग्री:
    • एक सुसंगत वर्ग-नामकरण योजना के साथ बहुत सारे डिव-रैपर जैसे कि ड्रुपल जैसे सीएमएस द्वारा उपयोग किए जाते हैं।
    • एचटीएमएल या मेटा टैग में टिप्पणी सीधे / अप्रत्यक्ष रूप से उपकरण उपयोग का संकेत है
  • डिफ़ॉल्ट त्रुटि संदेश या त्रुटि पृष्ठ डिज़ाइन (जैसे उनके 404 देखने के लिए नकली URL पिंग करना)
  • कभी-कभी टिप्पणी टैग को संस्करण में उद्देश्यों के लिए रखा जाता है जो एक सुराग प्रदान करते हैं
  • ...

लेकिन उन सभी को हटाया / बदला / फीका किया जा सकता है। कुछ दूसरों की तुलना में बदलना आसान है, लेकिन कोई भी 100% विश्वसनीय नहीं है।

उन संकेतकों को बदलने के विभिन्न कारण हैं:

  • आप अंतर्निहित तकनीक को बदलते हैं, लेकिन अपने URL को बदलना नहीं चाहते हैं
  • आप अपनी तकनीक के बारे में कम से कम जानकारी देना चाहते हैं
  • (पिछले से संबंधित) आप स्क्रिप्ट किडी बस के लिए पहला पड़ाव नहीं होंगे जब ज्ञात प्लेटफॉर्म की कमजोरियों की खोज / प्रचार किया जाएगा
  • आप "इन" (यहां तक ​​कि 'हालांकि वर्तमान में विस्तार-कम REST- शैली URL होने का अर्थ) चाहते हैं।
  • ...

11
PHP के बराबर JSESSIONIDहै PHPSESSID
यानि

6
वहाँ कई उपकरण हैं जो विश्लेषण कर रहे हैं, उदाहरण के लिए wappalyzer.com
user123444555621

1
बस एक Django साइट पर wappalyzer का परीक्षण किया - केवल एक चीज का पता चला जो JQuery और Google Analytics था। और इन-हाउस फ्रेमवर्क के साथ PHP साइट, जहां इसने कुछ भी नहीं पाया।
vartec

पूरी तरह से अपना जवाब जोड़ने के लिए। मैं HTML पैटर्न भी जोड़ूंगा (CMSes विशेष रूप से लगातार नामित कक्षाओं के साथ बहुत सारे कचरा आवरणों को जोड़ने के लिए) और बहुत सारे (ज्यादातर भद्दे) उपकरण यह घोषणा करना पसंद करते हैं कि उनका उपयोग मेटा टैग (टिप्पणियों में भी किया गया है, लेकिन है कि उल्लेख किया गया था)।
एरिक रेपेने

1
@OP, मैं निश्चित रूप से सत्र कुकीज़ को टारगेट करने का पहला तरीका मानूंगा और यह पता लगाऊंगा कि स्वचालित प्रणाली में उपयोग में क्या है। यह एक बात है कि कम स्पष्ट रूपरेखा लगातार दिखाने की संभावना है लेकिन जैसा कि कहा गया है, कुछ भी 100% विश्वसनीय नहीं है।
एरिक रेपेने

8

खैर, मनुष्यों की है। बाहरी फ़ाइल जिसे एक डेवलपर डोमेन पर रख सकता है जो साइट के विकास के बारे में कुछ जानकारी देता है, हो सकता है कि किसने इस पर काम किया हो और कौन से मानकों या टूल का उपयोग किया गया था। यदि वे चाहते हैं कि आपको उन प्रकार की जानकारी के बारे में पता हो, तो वे इसे वहाँ रख सकते हैं। हालाँकि, जैसे कुछ और भी वैकल्पिक है, इसलिए यह आपको सूचित करने की गारंटी नहीं दे सकता है। मनुष्यों की जाँच करें


4

यदि वेबमास्टर खुलासा नहीं करना चाहता है, तो यह असंभव नहीं बल्कि मुश्किल हो सकता है। कुछ रूपरेखाओं की कुछ विशेषताएं हैं, लेकिन उन्हें छिपाया जा सकता है।

  • फ़ाइल एक्सटेंशन: मानक लोगों का उपयोग करने का कोई वास्तविक कारण नहीं है, और अधिकांश आधुनिक MVC वैसे भी URL रूटिंग का उपयोग करते हैं। इसलिए जब तक साइट कुछ समय के लिए आस-पास नहीं रही, आप शायद कोई भी देखने नहीं जा रहे हैं (उदाहरण के लिए, स्टैटेक्सचेंज .aspxविस्तार का उपयोग नहीं कर सकते हैं );

  • सत्र आईडी: उदाहरण के PHPSESSIDलिए PHP के लिए डिफ़ॉल्ट है, लेकिन आसानी से ओवरराइड किया जा सकता है ;

  • वेब सर्वर और स्क्रिप्टिंग भाषा संस्करणों के साथ हेडर: बंद या नकली भी हो सकते हैं ।

सामान जिसे छुपाना कठिन हो:

  • पीएचपी जोड़कर एक ही क्वेरी स्ट्रिंग चर के लिए अनेक मान संभालती []नाम करने के लिए, इस प्रकार आप की तरह कुछ देखना चाहते हैं: ...?var[]=1&var[]=3&...। AFAIK, यह एकमात्र वेब फ्रेमवर्क है जो इसे इस तरह से संभालता है।

क्या आप PHP को वेब फ्रेमवर्क कह रहे हैं? यह और भी है एक ट्यूरिंग-पूर्ण भाषा है कि वेब सामग्री की तुलना में अधिक करने में इस्तेमाल किया जा सकता है (हालांकि यह आम तौर पर के रूप में इस्तेमाल नहीं कर रहा है इस तरह के)
sakisk

@ अल्फा: किसी अन्य भाषा में क्वेरी स्ट्रिंग को पार्स करना वेब फ्रेमवर्क का हिस्सा है। यहां तक ​​कि रासमस लेरडोर्फ PHP को एक वेब फ्रेमवर्क मानता है। आप बेहतर जानते हैं तब लेखक?
vartec

शुरू में उनके दिमाग में यही था, लेकिन मुझे लगता है कि PHP आज और भी बहुत कुछ कर सकता है। शुद्धता के लिए, मैं PHP को वेब फ्रेमवर्क नहीं कहूंगा। उस मामले में क्या CakePHP, कोडिग्निटर, आदि हैं? वेब फ्रेमवर्क के वेब ढांचे? :)
साकिस

1
मुझे आपकी बात नहीं आती। PHP एक ऐसी भाषा है जिसकी भाषा में एम्बेडेड वेब फ्रेमवर्क की मुख्य कार्यक्षमता है। हालत से समझौता करो।
vartec

4

संक्षेप में: यह छिपाना संभव है कि आप बैक-एंड पर किस भाषा का उपयोग कर रहे हैं। तुच्छ उदाहरण: "हैलो वर्ल्ड" पृष्ठ पर विचार करें; यह पता लगाना बेहद मुश्किल होगा कि बैक-एंड पर किस फ्रेमवर्क / भाषा का उपयोग किया जा रहा था (यह मानकर कि सत्र कुकीज़ जैसे मूल सामान मैन्युअल रूप से सेट किए गए हैं या उपयोग में नहीं हैं)।

हालाँकि, फ्रेमवर्क का बिंदु आपको कार्यक्षमता को फिर से लागू करने और आपको मानकीकृत तरीके से काम करने के लिए बचाने के लिए है। लगभग सभी रूपरेखाओं में उनकी विशिष्ट छोटी-छोटी कथाएँ हैं, जो उन्हें दूर करेंगी, यदि आप पर्याप्त रूप से करीब दिखते हैं। जैसा कि दूसरों ने बताया है, कॉन्फ़िगरेशन या विभिन्न मानक सुविधाओं को फिर से लागू करके, इन्हें छिपाने की कोशिश करना संभव है। फिर भी, मेरा तर्क है कि बड़ी साइटों के लिए, पूरी तरह से सब कुछ छिपाना बहुत मुश्किल होगा, और यहां तक ​​कि अगर आपने ऐसा किया है, तो आप अपने ढांचे का बहुत कम उपयोग कर रहे हैं।

संक्षेप में, मैं कहूंगा कि यह बहुत ही अच्छा विचार प्राप्त करना संभव है कि नीचे क्या इस्तेमाल किया जा रहा है (कुछ सावधानीपूर्वक परीक्षा और पैडिंग के साथ)। उपयोग किए गए ढांचे को छिपाना संभव है, लेकिन बड़ी साइटों के लिए जल्दी से संभव हो जाता है।

पिछले उत्तरों में विभिन्न कथा-कहानियों के कुछ अच्छे उदाहरण हैं जो कि रूपरेखा और भाषाएं हैं। मैं जोड़ना चाहूंगा कि विभिन्न दृश्य इंजनों में विशिष्ट व्हाट्सएप-संबंधित व्यवहार होता है जिसका उपयोग उन्हें पहचानने के लिए किया जा सकता है। MVC3 + में इस्तेमाल किए गए रेजर इंजन में कुछ विशिष्ट विशिष्ट क्वर्की होते हैं जिनका उपयोग इसे पहचानने के लिए किया जा सकता है, या कम से कम, संदिग्धों की सूची को संकीर्ण कर (फिर से, आप इसे साइड-स्टेप कर सकते हैं, लेकिन फिर, क्या आप इसका उपयोग कर रहे हैं?)।


4

मुझे नहीं पता कि यह विशेष रूप से आपके प्रश्न का उत्तर देता है, लेकिन एक उपकरण है जो वास्तव में मेरे लिए उपयोगी था: वेपालीज़र । यह एक फ़ायरफ़ॉक्स / क्रोम एक्सटेंशन है जो वेबसाइटों पर उपयोग की जाने वाली तकनीकों को उजागर करता है। यह सामग्री प्रबंधन प्रणाली, वेब सर्वर, जावास्क्रिप्ट चौखटे, विश्लेषिकी उपकरण और कई अन्य का पता लगाता है। मुझे पता है कि आप जो देख रहे हैं वह ठीक नहीं है, लेकिन यह आपको एक साइट के उपयोग के बारे में बहुत बारीकी से जानकारी देता है। यह प्रोग्रामर्स.स्टैकएक्सचेंज डॉट कॉम के लिए यह दिखाता है

Wappalyzer


हा हा, मैंने अपने ब्लॉग का दौरा किया और यह अपाचे 2 / पीएचपी 5.5.9 का कहना है, लेकिन मुझे पूरा यकीन है कि यह आपके-आपके ASP.NET MVC ब्लॉग का रोल है, क्योंकि मैंने इसे बनाया है। क्योंकि ट्रोलिंग कारणों से मैंने 'X-Powered-by: ASP.NET' प्रतिक्रिया हेडर को PHP में बदल दिया है।
लार्स

1

साइट को इस तरह से लिखना संभव है, कि क्लाइंट को सर्वर तकनीक के बारे में कोई सुराग दिखाई नहीं देगा।

हालाँकि, जब कोई जावा के लिए कुछ ढांचे का उपयोग करता है, जैसे कि IceFaces , तो यह व्यावहारिक रूप से असंभव है क्योंकि आप अपने अनुरोधों में ऐसा कुछ देखेंगे:

ice.submit.partial=true&ice.session=c4f4jxT36tM_38848488&ice.view=3&ice.focus=&rand=0.322803445

कई अन्य रूपरेखाओं में पेज बॉडी या अनुरोधों / प्रतिक्रियाओं में उनकी विशिष्ट टिकटें हैं। उन्हें ढूंढें, Google और आपके पास एक उत्तर होगा।

हालाँकि, प्रत्येक भाषा में, यदि आप स्क्रैच से एचटीएमएल बनाना चाहते हैं (जावा वर्ल्ड में एक उदाहरण वेलोसिटी टेम्प्लेट होगा) या शुद्ध AJAX तरीका चुनें, जहां सर्वर केवल JSON संदेश देता है / स्वीकार करता है, और क्लाइंट पूरी तरह से जावास्क्रिप्ट में है - एक कठिन तरीका , जब तक आप अनियंत्रित अपवाद का कारण नहीं बनते हैं, जिसके तहत प्रौद्योगिकी का पता चलता है।


0

उन साइटों पर जो पूर्ण-विकसित फ्रेमवर्क या सीएमएस का उपयोग करती हैं, कभी-कभी आप व्यवस्थापक पृष्ठ को क्वेरी करने की कोशिश कर सकते हैं, आपको एक लॉगिन बॉक्स के साथ प्रस्तुत किया जाएगा और यह पहचानना होगा कि यह किस फ्रेमवर्क से आया है क्योंकि अधिकांश लोग व्यवस्थापक टेम्पलेट को फिर से नहीं बनाते हैं। उदाहरण के लिए यदि आपकी साइट example.com है, तो example.com/admin/ या example.com/wp-admin/ (wordpress) पर जाने का प्रयास करें।



-5

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.