2011-12-17 28 views
13

उदाहरण के लिए, फेसबुक.com मेरे ब्राउज़र पर एक संस्करण नियंत्रण स्क्रिप्ट चला सकता है और पता लगा सकता है कि क्या मैं एक स्क्रिप्ट के उपयोग के साथ परिवर्तित HTML कोड चला रहा हूं?क्या कोई वेबसाइट जान सकती है कि क्या मैं उपयोगकर्तास्क्रिप्ट चला रहा हूं?

क्या यह ऐसी स्क्रिप्ट के साथ किया जा सकता है जो कैश में HTML कोड पढ़ सकता है और किसी प्रकार का हैश टैग उत्पन्न करता है जो सर्वर पर वापस भेजा जाता है और क्लाइंट को भेजे गए कोड की तुलना में किया जाता है?

+0

फेसबुक स्थिर HTML नहीं है, इसलिए, हैश बेकार है, इसलिए, impossibru। –

+1

क्या आपके पास यह विश्वास करने का कारण है कि फेसबुक आपकी उपयोगकर्तास्क्रिप्ट का पता लगा रहा है? यदि हां, तो क्यों? आप इस पर शक कैसे करते हैं? –

+3

फेसबुक को आपकी उपयोगकर्तास्क्रिप्ट की परवाह नहीं है, और वास्तव में - उनके लगातार इंटरफ़ेस परिवर्तन अकेले ही कई उपयोगकर्ता-स्क्रिप्ट से लड़ने में मदद करते हैं, विशेष रूप से उन लोगों को जो सक्रिय रूप से बनाए रखा नहीं जाता है। – c69

उत्तर

21

हां, सिद्धांत रूप में, एक साइट विभिन्न परिस्थितियों में स्क्रिप्ट की उपस्थिति को कम कर सकती है।

यह मूर्खतापूर्ण नहीं है और आमतौर पर साइट पर नगण्य "खतरे" के लिए बहुत अधिक परेशानी है।

  1. गेमिंग या नीलामी साइटों कर सकते हैं:

    कुछ तरीकों,) क्या स्क्रिप्ट करता है (किसी विशेष क्रम में) के आधार पर, (फिर, कुछ वेबमास्टर ऐसी बातों के बारे में जुनूनी पैरानॉइड हो सकता है।) "बोली" क्लिक के समय (गति और नियमितता) की निगरानी करें।

  2. एक साइट AJAX- वापस कहने की गिनती कर सकती है, <script> नोड्स, अतिरिक्त की तलाश में।

  3. इसी प्रकार, कोई साइट किसी पृष्ठ की किसी भी या सभी सामग्री को AJAX- वापस कर सकती है और इसकी अपेक्षाकृत मूल्यों की तुलना कर सकती है।

  4. अतिरिक्त AJAX कॉल, या AJAX कॉल जो छिपी आवश्यकताओं को पूरा नहीं करते हैं उन्हें नोट किया जा सकता है (और सफल होने की अनुमति है)।

  5. यदि स्क्रिप्ट unsafeWindow का उपयोग केवल दाएं (गलत) तरीके से a page can detect that and even hijack (slightly) elevated privileges पर करती है।

  6. "क्लिक" जो माउसओवर घटनाओं से पहले नहीं थे, का पता लगाया जा सकता है। मैंने वास्तव में इसे जंगली में इस्तेमाल किया है।

  7. A page's javascript can often detect script-generated clicks (etc.) उपयोगकर्ता जेनरेट किए गए लोगों से अलग होने के नाते। (धन्यवाद, c69, अनुस्मारक के लिए।)

अंत में, लाभ userscript लेखक को, फिर भी है। कोई भी वेब-उपाय जो वेबपृष्ठ लेता है, उपयोगकर्ता के अंत में पता लगाया जा सकता है और विफल हो सकता है। यहां तक ​​कि कस्टम, आवश्यक प्लगइन्स या आवश्यक हार्डवेयर डोंगल को कुशल और प्रेरित उपयोगकर्ताओं द्वारा बदला जा सकता है।

+3

ओपेरा में, पृष्ठ अब नकली क्लिक ('.isTrusted' संपत्ति के माध्यम से) का पता लगा सकता है, शायद यह जल्द ही अन्य ब्राउज़रों में संभव होगा। – c69

+2

@ सी 6 9, यह [थोड़ी देर के लिए फ़ायरफ़ॉक्स में संभव है] (http://help.dottoro.com/ljoljvsn.php) और आईई 9 में सीमित समर्थन है। –

+1

@ माइकऑर्टिज़, नहीं। उपयोगकर्तास्क्रिप्ट स्वयं एक अलग दायरे में रहता है जिसे पृष्ठ नहीं देख सकता - यहां तक ​​कि '@grant none' मोड में भी। ... यदि उपयोगकर्तास्क्रिप्ट '

5

अद्यतन: नीचे दिए गए तरीके Greasemonkey 3.3 के रूप में पूरी तरह से अप्रभावी हैं।



सी (मृत लिंक) How-to Detect Greasemonkey

जावास्क्रिप्ट यदि जीएम स्थापित है (लेकिन है कि क्या एक स्क्रिप्ट वास्तव में उस पृष्ठ पर चल रहा है) का पता लगाने के:

अप्रचलित विकल्प 1:

if (Components.interfaces.gmIGreasemonkeyService) { 
    alert("I smell a monkey!"); 
} 


अप्रचलित विकल्प 2:

<script type="text/javascript" src="resource://greasemonkey/addons4.js"></script> 
<script type="text/javascript"> 
if (typeof GM_addonsStartup !== "undefined") { 
    alert("I smell a monkey!"); 
} 
</script> 
+0

क्या यह अभी भी वैध है? – Edge

+1

@Egege, नहीं, यह अब मान्य नहीं है, अद्यतन उत्तर देखें। –