मैं अपनी वेब साइट पर जाने वाले कंप्यूटरों की विशिष्ट पहचान कैसे करूं?


184

मुझे प्रत्येक कंप्यूटर को विशिष्ट रूप से पहचानने की जरूरत है, जो मेरे द्वारा बनाई जा रही वेब साइट पर जाती है। क्या किसी को इस पर कोई सलाह है कि इसे कैसे प्राप्त किया जाए?

क्योंकि मैं चाहता हूं कि सभी मशीनों और सभी ब्राउज़रों पर काम करने का समाधान (कारण के भीतर) मैं जावास्क्रिप्ट का उपयोग करके एक समाधान बनाने की कोशिश कर रहा हूं।

कुकीज़ नहीं करेंगे।

मुझे मूल रूप से एक गाइड बनाने की क्षमता की आवश्यकता है जो एक कंप्यूटर के लिए अद्वितीय है और दोहराए जाने योग्य है, यह मानते हुए कि कंप्यूटर में कोई हार्डवेयर परिवर्तन नहीं हुआ है। मैं सोच रहा हूं कि नेटवर्क कार्ड के मैक और इस प्रकृति की अन्य जानकारी प्राप्त कर रहे हैं जो मशीन को वेब साइट पर जाकर आईडी करेगा।


4
आप उनके नेटवर्क कार्ड का मैक प्राप्त नहीं कर सकते हैं - आईपी डेंसेंस में वह जानकारी नहीं है, जो सबसे अच्छा आप प्राप्त कर सकते हैं वह उनके आईएसबी गेटवे का आईपी पता है। कुछ आईएसपी के लिए जो किसी दिए गए शहर के सभी उपयोगकर्ताओं के लिए समान हो सकते हैं।
मार्टिन बेकेट

1
तथ्य यह है कि आप नहीं चाहते हैं कि उपयोगकर्ता इसे खराब करने में सक्षम हो। उत्तर यह है कि यह आपके द्वारा उपयोगकर्ता मशीन पर स्थापित कुछ निजीकृत घटक के बिना नहीं किया जा सकता है।
एंथनीवजोन

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

यह नहीं किया जा सकता है - कुकीज़ आपका सबसे अच्छा दांव हैं
डेमॉन

कृपया मेरा उत्तर इस पृष्ठ में पढ़ें। इस समस्या के लिए मेरे पास एक बहुत अच्छा विचार है :)
महदी जैजिनी

जवाबों:


58

इन लोगों ने उच्च स्तर की सटीकता के साथ उपयोगकर्ता को पहचानने के लिए एक फिंगरप्रिंट विधि विकसित की है:

https://panopticlick.eff.org/static/browser-uniqueness.pdf

हम उस संस्करण की जांच करते हैं, जिस पर आधुनिक वेब ब्राउज़र संस्करण और कॉन्फ़िगरेशन जानकारी के माध्यम से "डिवाइस फ़िंगरप्रिंटिंग" के अधीन हैं, जो वे अनुरोध पर वेबसाइटों तक पहुंचेंगे। हमने एक संभव फ़िंगरप्रिंटिंग एल्गोरिथम लागू किया, और इन फ़िंगरप्रिंट्स को उन ब्राउज़रों के एक बड़े नमूने से एकत्र किया, जो हमारे परीक्षण पक्ष, panopticlick.eff.org पर गए थे।। हम देखते हैं कि हमारी अंगुली-छाप के वितरण में कम से कम 18.1 बिट्स एन्ट्रापी शामिल हैं, जिसका अर्थ है कि यदि हम किसी ब्राउज़र को यादृच्छिक रूप से चुनते हैं, तो सबसे अच्छी तरह से हम यह उम्मीद करते हैं कि 286,777 अन्य ब्राउज़रों में से केवल एक ही इसका फिंगरप्रिंट साझा करेगा। फ्लैश या जावा का समर्थन करने वाले ब्राउज़रों में, स्थिति बदतर है, जिसमें औसत ब्राउज़र में कम से कम 18.8 बिट्स की पहचान करने वाली जानकारी होती है। हमारे नमूने में फ्लैश या जावा के साथ 94.2% ब्राउज़र अद्वितीय थे।

लौटने वाले आगंतुकों को देखकर, हम अनुमान लगाते हैं कि समय के साथ कितनी तेज़ी से ब्राउज़र फ़िंगरप्रिंट बदल सकते हैं। हमारे नमूने में, उंगलियों के निशान काफी तेजी से बदल गए, लेकिन यहां तक ​​कि एक साधारण हेयुरिस्टिक आमतौर पर अनुमान लगाने में सक्षम था जब एक फिंगरप्रिंट पहले से देखे गए ब्राउज़र के फिंगरप्रिंट का "उन्नत" संस्करण था, जिसमें 99.1% अनुमान सही थे और केवल 0.40% की झूठी सकारात्मक दर थी। ।

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


14
मैं एक डेवलपर हूं, मैं यहां त्वरित समाधान या छोटे कोड स्निपेट की तलाश में आया था। यह दस्तावेज़ यह नहीं दिखाता है कि इसे कैसे लागू किया जाए। मैं जानना चाहता हूं कि मैं इसे कैसे लागू कर सकता हूं ताकि मैं अपनी साइट के लिए अद्वितीय उपयोगकर्ताओं को ट्रैक कर सकूं।
ओलिवर

9
@ आप सही हैं। यह आपको एक प्लेट पर जवाब नहीं देता है। इसमें आगे पढ़ने, शामिल सभी मुद्दों की समझ और क्यों एक सरल कोड स्निपेट की कभी भी पूरी तरह से काम करने की संभावना नहीं है। एक उद्यमी डेवलपर एक पुस्तकालय लिख सकता है जो सभी कड़ी मेहनत करता है, और भविष्य में लाभ के लिए "त्वरित समाधान" खोजने वाले लोगों को सक्षम बनाता है।
जोनाथन

2
इसका उत्तर भी केवल लिंक है। पीडीएफ अनुपलब्ध होने की स्थिति में पीडीएफ में वर्णित तकनीकों का सारांश सराहा जाएगा।
डेमियन यरिक सिप

2
यहाँ एक खुला स्रोत पैकेज और आसान-इश तरह से फिंगरप्रिंटिंग को लागू करने के लिए मेरा उत्तर देखें stackoverflow.com/a/47536192/3650835
KayakinKoder

इसलिए मैं बेहतर एक यादृच्छिक बड़ी संख्या के साथ लचीला "कुकी" बनाता हूं: D
लुइस मौरिसियो

49

परिचय

मुझे नहीं पता कि क्या है या कभी भी अकेले ब्राउज़र का उपयोग करके विशिष्ट रूप से मशीनों की पहचान करने का एक तरीका होगा। मुख्य कारण हैं:

  • आपको उपयोगकर्ता कंप्यूटर पर डेटा सहेजने की आवश्यकता होगी। यह डेटा किसी भी समय उपयोगकर्ता द्वारा हटाया जा सकता है। जब तक आपके पास इस डेटा को फिर से बनाने का कोई तरीका नहीं है जो प्रत्येक मशीन के लिए अद्वितीय है और फिर आपका अटक गया है।
  • मान्यकरण। आपको स्पूफिंग, सेशन हाईजैकिंग आदि से बचाव करने की आवश्यकता है।

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

मैं आपके द्वारा पूछे गए प्रश्न का उत्तर देने में सक्षम नहीं हो सकता, लेकिन मैं आपको दिखा सकता हूं कि सत्र ट्रैकिंग को कैसे लागू किया जाए। सत्र ट्रैकिंग के साथ आप अपनी साइट पर आने वाले कंप्यूटर के बजाय ब्राउज़िंग सत्र को ट्रैक करने का प्रयास करते हैं। सत्र पर नज़र रखने से, आपका डेटाबेस स्कीमा इस तरह दिखेगा:

sesssion:
  sessionID: string
  // Global session data goes here

  computers: [{
     BrowserID: string
     ComputerID: string
     FingerprintID: string
     userID: string
     authToken: string
     ipAddresses: ["203.525....", "203.525...", ...]
     // Computer session data goes here
  }, ...]

सत्र आधारित ट्रैकिंग के लाभ:

  1. लॉग इन उपयोगकर्ताओं के लिए, आप हमेशा उपयोगकर्ताओं username/ password/ से एक ही सत्र आईडी उत्पन्न कर सकते हैं email
  2. आप अभी भी उपयोग करने वाले अतिथि उपयोगकर्ताओं को ट्रैक कर सकते हैं sessionID
  3. यहां तक ​​कि अगर कई लोग एक ही कंप्यूटर (यानी साइबर कैफे) का उपयोग करते हैं, तो आप उन्हें लॉग इन करने पर अलग से ट्रैक कर सकते हैं।

सत्र आधारित ट्रैकिंग के नुकसान:

  1. सत्र ब्राउज़र आधारित हैं और कंप्यूटर आधारित नहीं हैं। यदि कोई उपयोगकर्ता 2 अलग-अलग ब्राउज़रों का उपयोग करता है, तो इसके परिणामस्वरूप 2 अलग-अलग सत्र होंगे। यदि यह एक समस्या है तो आप यहां पढ़ना बंद कर सकते हैं।
  2. यदि उपयोगकर्ता लॉग इन नहीं है, तो सत्र समाप्त हो जाता है। यदि कोई उपयोगकर्ता लॉग इन नहीं है, तो वे एक अतिथि सत्र का उपयोग करेंगे, जिसे अमान्य कर दिया जाएगा यदि उपयोगकर्ता कुकीज़ और ब्राउज़र कैश हटाता है।

कार्यान्वयन

इसे लागू करने के कई तरीके हैं। मुझे नहीं लगता कि मैं उन सभी को कवर कर सकता हूं, मैं सिर्फ अपने पसंदीदा को सूचीबद्ध करूंगा जो इसे एक राय बना देगा । मन में है कि सहन करो।

मूल बातें

मैं हमेशा के लिए कुकी के रूप में जाना जाता है का उपयोग करके सत्र को ट्रैक करूंगा। यह वह डेटा है जो उपयोगकर्ता द्वारा अपने कुकीज़ को हटाने या अपने ब्राउज़र को अपडेट करने पर भी स्वचालित रूप से फिर से बनाएगा। हालाँकि यह उनके कुकी और ब्राउजिंग कैश दोनों को डिलीट करने वाले यूजर से बचेगा नहीं।

इसे लागू करने के लिए मैं ब्राउज़र कैशिंग मैकेनिज्म ( RFC ), WebStorage API ( MDN ) और ब्राउज़र कुकीज़ ( RFC , Google Analytics ) का उपयोग करेगा।

कानूनी

ट्रैकिंग आईडी का उपयोग करने के लिए आपको उन्हें अपनी गोपनीयता नीति और उप-शीर्षक ट्रैकिंग के तहत अधिमानतः उपयोग की अपनी शर्तों को जोड़ना होगा । हम दोनों पर निम्नलिखित कुंजियों का उपयोग करेंगे document.cookieऔर window.localStorage:

  • _ga : Google Analytics डेटा
  • __utma : Google Analytics ट्रैकिंग कुकी
  • सिड : सत्र

सुनिश्चित करें कि आप अपनी गोपनीयता नीति के लिंक और ट्रैकिंग का उपयोग करने वाले सभी पृष्ठों पर उपयोग की शर्तें शामिल हैं।

मैं अपना सत्र डेटा कहां संग्रहीत करूं?

आप या तो अपने सत्र डेटा को अपने वेबसाइट डेटाबेस में या उपयोगकर्ताओं के कंप्यूटर पर संग्रहीत कर सकते हैं। चूंकि मैं सामान्य रूप से छोटी साइटों (10 हजार से अधिक निरंतर कनेक्शन) पर काम करता हूं, जो कि 3 पार्टी एप्लिकेशन (Google Analytics / Clicky / etc) का उपयोग करते हैं, यह मेरे लिए क्लाइंट कंप्यूटर पर डेटा संग्रहीत करने के लिए सबसे अच्छा है। इसके निम्नलिखित फायदे हैं:

  1. कोई डेटाबेस देखने / ओवरहेड / लोड / विलंबता / अंतरिक्ष / आदि
  2. उपयोगकर्ता जब भी मुझे कष्टप्रद ईमेल लिखने की आवश्यकता के बिना अपना डेटा हटा सकते हैं।

और नुकसान:

  1. डेटा को एन्क्रिप्ट / डिक्रिप्ट और हस्ताक्षरित / सत्यापित करना होगा जो क्लाइंट पर सीपीयू ओवरहेड बनाता है (इतना बुरा नहीं) और सर्वर (बीएएच!)।
  2. जब उपयोगकर्ता अपनी कुकी और कैश हटाता है तो डेटा हटा दिया जाता है। (यह वही है जो मैं वास्तव में चाहता हूं)
  3. जब उपयोगकर्ता ऑफ-लाइन जाते हैं, तो डेटा एनालिटिक्स के लिए उपलब्ध नहीं है। (वर्तमान में केवल उपयोगकर्ताओं को ब्राउज़ करने के लिए विश्लेषण)

UUIDs

  • BrowserID : ब्राउज़र उपयोगकर्ता एजेंट स्ट्रिंग से उत्पन्न अद्वितीय आईडी।Browser|BrowserVersion|OS|OSVersion|Processor|MozzilaMajorVersion|GeckoMajorVersion
  • ComputerID : उपयोगकर्ताओं से उत्पन्न IP पता और HTTPS सत्र कुंजी। getISP(requestIP)|getHTTPSClientKey()
  • FingerPrintID : एक संशोधित आधार पर जावास्क्रिप्ट आधारित फिंगरप्रिंटिंग fingerprint.jsFingerPrint.get()
  • SessionID : उपयोगकर्ता द्वारा पहली बार विज़िट किए जाने पर यादृच्छिक कुंजी उत्पन्न होती है।BrowserID|ComputerID|randombytes(256)
  • GoogleID : __utmaकुकी से उत्पन्न ।getCookie(__utma).uniqueid

तंत्र

दूसरे दिन मैं अपनी प्रेमिका के साथ वेंडी विलियम्स शो देख रहा था और पूरी तरह से भयभीत था जब मेजबान ने अपने दर्शकों को महीने में कम से कम एक बार अपने ब्राउज़र के इतिहास को हटाने की सलाह दी। ब्राउज़र इतिहास को सामान्य रूप से हटाने के निम्नलिखित प्रभाव होते हैं:

  1. विज़िट की गई वेबसाइटों का इतिहास हटाता है।
  2. कुकीज़ और window.localStorage(aww आदमी) हटाता है ।

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

example.com/assets/js/tracking.js (वास्तव में ट्रैकिंग। पीपी )

var now = new Date();
var window.__sid = "SessionID"; // Server generated

setCookie("sid", window.__sid, now.setFullYear(now.getFullYear() + 1, now.getMonth(), now.getDate() - 1));

if( "localStorage" in window ) {
  window.localStorage.setItem("sid", window.__sid);
}

अब हम किसी भी समय अपना सत्र कुंजी प्राप्त कर सकते हैं:

window.__sid || window.localStorage.getItem("sid") || getCookie("sid") || ""

मैं ब्राउजर में ट्रैकिंग। जेएस स्टिक कैसे बनाऊं?

हम इसे Cache-Control , Last-Modified और ETag HTTP हेडर का उपयोग करके प्राप्त कर सकते हैं। हम SessionIDetag हेडर के लिए मान का उपयोग कर सकते हैं :

setHeaders({
  "ETag": SessionID,
  "Last-Modified": new Date(0).toUTCString(),
  "Cache-Control": "private, max-age=31536000, s-max-age=31536000, must-revalidate"
})

Last-Modifiedहेडर ब्राउज़र को बताता है कि यह फ़ाइल मूल रूप से कभी भी संशोधित नहीं हुई है। Cache-Controlप्रॉक्सी और गेटवे को दस्तावेज़ को कैश नहीं करने के लिए कहता है लेकिन ब्राउज़र को 1 साल के लिए इसे कैश करने के लिए कहता है।

अगली बार जब ब्राउज़र दस्तावेज़ का अनुरोध करता है, तो यह भेजेगा If-Modified-Sinceऔर If-None-Matchहेडर देगा। हम एक 304 Not Modifiedप्रतिक्रिया वापस करने के लिए इनका उपयोग कर सकते हैं ।

example.com/assets/js/tracking.php

$sid = getHeader("If-None-Match") ?: getHeader("if-none-match") ?: getHeader("IF-NONE-MATCH") ?: ""; 
$ifModifiedSince = hasHeader("If-Modified-Since") ?: hasHeader("if-modified-since") ?: hasHeader("IF-MODIFIED-SINCE");

if( validateSession($sid) ) {
  if( sessionExists($sid) ) {
    continueSession($sid);
    send304();
  } else {
    startSession($sid);
    send304();
  }
} else if( $ifModifiedSince ) {
  send304();
} else {
  startSession();
  send200();
}

अब हर बार जब ब्राउज़र अनुरोध करता है कि tracking.jsहमारा सर्वर 304 Not Modifiedपरिणाम के साथ प्रतिक्रिया देगा और स्थानीय प्रतिलिपि के निष्पादन को बाध्य करेगा tracking.js

मुझे अभी भी समझ नहीं आया। मुझे यह स्पष्ट करें

मान लीजिए कि उपयोगकर्ता अपने ब्राउज़िंग इतिहास को साफ़ करता है और पृष्ठ को ताज़ा करता है। उपयोगकर्ताओं के कंप्यूटर पर केवल एक चीज बची है जो tracking.jsब्राउज़र कैश की एक प्रति है। जब ब्राउज़र अनुरोध करता है, तो tracking.jsयह एक 304 Not Modifiedप्रतिक्रिया को पुन: प्राप्त करता है जिसके कारण यह इसके 1 संस्करण को निष्पादित करता है tracking.jstracking.jsनिष्पादित और पुनर्स्थापित करता है SessionIDजो हटा दिया गया था।

मान्यकरण

मान लीजिए कि Haxor X ने हमारे ग्राहकों की कुकीज़ चुरा ली हैं, जबकि वे अभी भी लॉग इन हैं। हम उनकी सुरक्षा कैसे करते हैं? क्रिप्टोग्राफी और ब्राउज़र बचाव के लिए फिंगरप्रिंटिंग। इसके लिए हमारी मूल परिभाषा याद रखें SessionID:

BrowserID|ComputerID|randomBytes(256)

हम इसे बदल सकते हैं:

Timestamp|BrowserID|ComputerID|encrypt(randomBytes(256), hk)|sign(Timestamp|BrowserID|ComputerID|randomBytes(256), hk)

कहाँ hk = sign(Timestamp|BrowserID|ComputerID, serverKey)?

अब हम SessionIDनिम्नलिखित एल्गोरिथ्म का उपयोग करके अपने को मान्य कर सकते हैं :

if( getTimestamp($sid) is older than 1 year ) return false;
if( getBrowserID($sid) !== createBrowserID($_Request, $_Server) ) return false;
if( getComputerID($sid) !== createComputerID($_Request, $_Server) return false;

$hk = sign(getTimestamp($sid) + getBrowserID($sid) + getComputerID($sid), $SERVER["key"]);

if( !verify(getTimestamp($sid) + getBrowserID($sid) + getComputerID($sid) + decrypt(getRandomBytes($sid), hk), getSignature($sid), $hk) ) return false;

return true; 

अब काम करने के लिए हैक्सोर के हमले के क्रम में:

  1. एक ही है ComputerID। इसका मतलब है कि उन्हें पीड़ित (मुश्किल) के समान आईएसपी प्रदाता होना चाहिए। यह हमारे पीड़ित को अपने देश में कानूनी कार्रवाई करने का अवसर देगा। Haxor को पीड़ित (हार्ड) से HTTPS सत्र कुंजी भी प्राप्त करनी चाहिए।
  2. एक ही है BrowserID। कोई भी उपयोगकर्ता-एजेंट स्ट्रिंग (कष्टप्रद) को खराब कर सकता है।
  3. अपने स्वयं के नकली SessionID(बहुत कठिन) बनाने में सक्षम हो । वॉल्यूम एटैक्स काम नहीं करेगा क्योंकि हम एन्क्रिप्शन / हस्ताक्षर कुंजी बनाने के लिए एक टाइम-स्टैंप का उपयोग करते हैं, इसलिए मूल रूप से प्रत्येक सत्र के लिए एक नई कुंजी उत्पन्न करना पसंद करता है। शीर्ष पर हम यादृच्छिक बाइट्स को एन्क्रिप्ट करते हैं इसलिए एक सरल शब्दकोश हमला भी सवाल से बाहर है।

हम अग्रेषण GoogleIDऔर FingerprintID(अजाक्स या छिपे हुए क्षेत्रों के माध्यम से) और उन लोगों के खिलाफ मिलान करके सत्यापन में सुधार कर सकते हैं।

if( GoogleID != getStoredGoodleID($sid) ) return false;
if( byte_difference(FingerPrintID, getStoredFingerprint($sid) > 10%) return false;

1
यह एक सुंदर जवाब है। इतनी जानकारी। मुझे आश्चर्य है कि आपके पास अधिक upvotes नहीं हैं। मैं ईमानदारी से svgs और jsonp के साथ तकनीक पर विश्वास नहीं कर सकता, लेकिन यह होना चाहिए। क्या ऐसी कोई लाइब्रेरी नहीं है जो कुकीज / लोकलस्टोरेज / सेशनस्टोरेज को डिसेबल करते समय इस तरह की तकनीक में आती है?
faceyspacey.com

इसके अलावा, मुझे आश्चर्य है कि अगर इसका एक उन्नत संस्करण केवल आपकी कैश्ड ट्रैकिंग। Js फ़ाइल (या ऐसी कई फाइलें) का उपयोग करना है जो इसे अनिवार्य रूप से स्थानीयस्टोरेज / कुकीज के रूप में उपयोग करने के लिए है, अर्थात बहुत सारा डेटा याद रखने के लिए। यह विचार होगा कि लाइब्रेरी के लिए तरीके storageFacade.setItemऔर भंडारण जैसे तरीके हो सकते हैं। Facade.getItem . And it tries to use localStorage, but fallsback to your technique when disabled. ..Perhaps the way it works is via a single file for "diffs" i.e. each time you call setItem सेलेक्ट मैथड्स का यह ` सेशन . And then a के दौरान बनाए गए सभी सेशंस में से हर एक बार एक बार अपने आप बनता है ।
faceyspacey.com

यदि प्रकट हर बार केवल एक बार बनाया गया था, तो अनिवार्य रूप से यह बनाए गए अभिव्यक्तियों की संख्या को सीमित करेगा। और फिर बाद में जावास्क्रिप्ट में आप बनाए गए सभी संभावित मैनिफेस्टों का अनुरोध करने की कोशिश कर सकते हैं, और फिर स्टेट को अलग स्नैपशॉट से पुनर्निर्माण करने के लिए नवीनतम का उपयोग कर सकते हैं। यदि हम बस अलग-अलग थे, तो सैकड़ों या हजारों हो सकते हैं और जब तक कि एक असफल नहीं हो जाता तब तक उन सभी को लाने की कोशिश करने के लिए एक प्रदर्शन समस्या हो सकती है। यानी आप भिन्न रूप से या प्रकट रूप से प्राप्त करते हैं: प्रकट -१.ज, प्रकट -२.ज, आदि, जब तक कि कोई विफल नहीं होता (क्योंकि यह मौजूद नहीं है)। जिसका अर्थ है कि यू में सभी अभिव्यक्तियाँ हैं (या
भिन्न हैं

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

30

अपने मालिकों के सहयोग के बिना किसी वेब साइट तक पहुँचने वाले कंप्यूटर की पहचान करना संभव नहीं है। यदि वे आपको देते हैं, हालांकि, आप अपनी साइट पर फिर से आने पर मशीन की पहचान करने के लिए एक कुकी स्टोर कर सकते हैं। कुंजी है, आगंतुक नियंत्रण में है; वे कुकी को हटा सकते हैं और किसी भी समय एक नए आगंतुक के रूप में प्रकट कर सकते हैं।


7
यदि वह 3 अलग-अलग ब्राउज़रों के साथ आपकी साइट पर जाता है, तो उसके पास 3 अलग-अलग कुकीज़ होंगे क्योंकि कुकीज़ ऐप्स के बीच साझा नहीं की जाती हैं। इसके अलावा, अगर वह एक स्थिर आईपी पते के बजाय डीएचसीपी का उपयोग करता है, तो संभवतः उसके कंप्यूटर के लिए लंबे समय तक एक ही आईपी पता नहीं होगा।
जॉनीसॉफ्टवेयर

2
हां और ना। ब्राउज़र फ़िंगरप्रिंटिंग एक ब्राउज़र प्रोफ़ाइल की उच्च संभावना के साथ पहचान करता है, लेकिन यह इस प्रश्न में मांगी गई निरपेक्ष एक-से-एक पहचान नहीं है। यह समझदार उपयोगकर्ता के लिए काफी सरल (लेकिन शायद आसान नहीं ) है अगर वे चाहें तो जानबूझकर इसे दरकिनार कर सकते हैं।
इरिकसन

30

एक संभावना फ़्लैश कुकीज़ का उपयोग कर रहा है :

  • सर्वव्यापी उपलब्धता (आगंतुकों के 95 प्रतिशत शायद फ्लैश होगा)
  • आप प्रति कुकी (100 KB तक) अधिक डेटा संग्रहीत कर सकते हैं
  • ब्राउज़रों में साझा किया गया है, इसलिए किसी मशीन की विशिष्ट पहचान करने की अधिक संभावना है
  • ब्राउज़र कुकीज़ साफ़ करने से फ़्लैश कुकीज़ नहीं हटती हैं।

आपको उन्हें पढ़ने और लिखने के लिए एक छोटी (छिपी) फ्लैश फिल्म बनाने की आवश्यकता होगी।

आप जो भी रास्ता चुनते हैं, सुनिश्चित करें कि आपके उपयोगकर्ता ट्रैक किए जाने के लिए IN चुनते हैं, अन्यथा आप उनकी गोपनीयता पर हमला कर रहे हैं और बुरे लोगों में से एक बन गए हैं।


5
कई उपयोगकर्ता फ़्लैशब्लॉक का उपयोग करते हैं। यदि वह देखना चाहता है तो फ्लैश एक क्लिक से उपयोगकर्ता से सक्रिय हो जाएगा।
होरक्रक्स 7

3
कुकीज़ को हटाने के तरीके हैं, लेकिन वे औसत उपयोगकर्ता से परे हैं। LSO की (स्थानीय साझा वस्तु en.wikipedia.org/wiki/Local_Saring_Object ) देखने और हटाने के लिए एडोब की वेबसाइट पर पेज हैं, हालांकि फ़ायरफ़ॉक्स उपयोगकर्ताओं के लिए ऑब्जेक्शन ऐड-ऑन उन्हें हटाने के लिए सबसे आसान तरीका है
सैम हस्लर

मुझे लगता है कि यह सबसे अच्छे समाधानों में से एक है। YouTube, Google आदि दुरुपयोग से लड़ने के लिए एलएसओ का उपयोग करते हैं।
उकु लोसित

4
Flash कुकी आसानी से फ़ायरफ़ॉक्स और क्रोम के आधुनिक संस्करणों में HTTP कुकी के रूप में नष्ट हो जाती हैं: विकिपीडिया :Adobe announced that Flash Player 10.3 enables Mozilla Firefox 4 and "future releases of Apple Safari and Google Chrome" to delete local shared objects,[11] so since version 4, Firefox treats LSOs the same way as HTTP cookies - deletion rules that previously applied only to HTTP cookies now also apply to LSOs.
जोजो

4
पिछले नौ वर्षों में स्थिति बदल गई है। आजकल, 95 प्रतिशत उपयोगकर्ता डेस्कटॉप पर भी नहीं हैं, और मोबाइल ने कभी भी एडोब फ्लैश प्लेयर को अपनाया नहीं है।
डेमियन यरिक सिप

21

आप एक अनूठे आईडी में एक यूनिक आईडी सेट करने की कोशिश कर सकते हैं (यह क्रॉस ब्राउज़र काम करेगा, उनके FAQ देखें): http://samy.pl/evercookie/

ThreatMetrix नाम की एक कंपनी भी है जो इस समस्या को हल करने के लिए कई बड़ी कंपनियों द्वारा उपयोग की जाती है: http://threatmetrix.com/our-solutions/solutions-by-product/trustdefender-id/ वे काफी महंगे हैं और कुछ उनके अन्य उत्पाद बहुत अच्छे नहीं हैं, लेकिन उनकी डिवाइस आईडी अच्छी तरह से काम करती है।

अंत में, वहाँ इस खुले स्रोत jquery के पैनोपॉनिकक्लिक विचार का कार्यान्वयन है: https://github.com/carlo/jquery-browser-fingerprint यह अभी बहुत आधा बेक किया हुआ दिखता है, लेकिन इसका विस्तार किया जा सकता है।

आशा करता हूँ की ये काम करेगा!


+ 1 - ब्रायन - महान जानकारी! यह सब बहुत उपयोगी साबित हुआ है। धन्यवाद। यदि आपने और कुछ नहीं सीखा है तो अधिक जानकारी जोड़ें।
बेन ओ

1
सदाबहार के बारे में। ओपेरा के साथ कोशिश की। कुकी सेट करें, फिर ओपेरा से सभी इतिहास को हटा दिया, फिर ओपेरा को बंद कर दिया, फिर से क्लिक किया Click to rediscover cookiesऔर शून्य या अपरिभाषित देखें। तो यह मेरे लिए काम नहीं करता है
एंड्रीस

IOS सफारी निजी मोड और डेस्कटॉप क्रोम गुप्त के साथ नमूना पृष्ठ की कोशिश की, ब्राउज़र पुनः आरंभ करने के बाद कुकी को पुनर्प्राप्त नहीं किया जा सकता है।
मोरियो जूल

20

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

लेख अन्य लगातार ट्रैकिंग तरीकों की भी समीक्षा करता है, जैसे सदाबहार, HTTP और फ्लैश कुकीज़, और कुकी सिंकिंग।

कैनवास फिंगरप्रिंटिंग के बारे में अधिक जानकारी यहाँ:


1
तो अगर दो डिवाइस समान हैं (एक ही बैच कंप्यूटर, एक ही ओएस, एक ही ब्राउज़र), उंगलियों के निशान समान हैं, है ना?
xiaoyu2er

यहाँ वास्तविक प्रश्न यह है कि जावास्क्रिप्ट पुस्तकालय मैं इसे उपयोग करने के लिए अपने कोड में छोड़ सकता हूँ। एक टन के सिद्धांत को पढ़ने से उन समस्याओं का समाधान नहीं होता है जिन्हें अगले 60 मिनट में हल किया जाना चाहिए।
थानैसिस आयोनिडिस

11

केवल एक छोटी सी जानकारी है जो आप HTTP कनेक्शन के माध्यम से प्राप्त कर सकते हैं।

  1. आईपी ​​- लेकिन जैसा कि दूसरों ने कहा है, यह कई के लिए तय नहीं है, अगर अधिकांश इंटरनेट उपयोगकर्ताओं को उनकी आईएसपी की गतिशील आवंटन नीतियों के कारण नहीं।

  2. उपयोगकर्ता-योग्य स्ट्रिंग - लगभग सभी ब्राउज़र हर अनुरोध के साथ किस प्रकार के ब्राउज़र को भेजते हैं। हालाँकि, यह उपयोगकर्ता द्वारा आज कई ब्राउज़रों में सेट किया जा सकता है।

  3. अनुरोध फ़ील्ड का संग्रह - प्रत्येक अनुरोध के साथ अन्य फ़ील्ड भेजे जाते हैं, जैसे समर्थित एन्कोडिंग, आदि, यदि ये कुल में उपयोग किए जाते हैं तो उपयोगकर्ता की मशीन को आईडी करने में मदद कर सकते हैं, लेकिन फिर से ब्राउज़र निर्भर हैं और इसे बदला जा सकता है।

  4. कुकीज़ - कुकी की स्थापना एक मशीन, या अधिक विशेष रूप से एक मशीन पर एक ब्राउज़र की पहचान करने का एक और तरीका है, लेकिन जैसा कि दूसरों ने कहा है, इन्हें हटाया जा सकता है, या उपयोगकर्ताओं द्वारा बंद कर दिया जा सकता है, और केवल एक ब्राउज़र पर लागू होता है, न कि किसी ब्राउज़र पर मशीन।

तो, सही प्रतिक्रिया यह है कि आप अकेले आईपी प्रोटोकॉल पर HTTP के माध्यम से क्या हासिल करेंगे। हालांकि, कुकीज़ के संयोजन के साथ-साथ आईपी और HTTP अनुरोध में फ़ील्ड का उपयोग करते हुए, आपके पास यह अनुमान लगाने का एक अच्छा मौका है कि यह किस तरह की मशीन है। उपयोगकर्ता केवल एक ब्राउज़र का उपयोग करते हैं, और अक्सर एक मशीन से, इसलिए यह काफी भरोसेमंद हो सकता है, लेकिन यह दर्शकों के आधार पर अलग-अलग होगा ... तकनीकी इस सामान के साथ गड़बड़ करने की अधिक संभावना है, और अधिक मशीनों / ब्राउज़रों का उपयोग करें। इसके अतिरिक्त, इसे IP को जियो-डिटेक्ट करने के कुछ प्रयास के साथ जोड़ा जा सकता है, और उस डेटा का भी उपयोग कर सकते हैं। लेकिन किसी भी मामले में, कोई समाधान नहीं है जो हर समय सही होगा।


10

कुकी और गैर-कुकी दोनों तरीकों के साथ दोष हैं। लेकिन अगर आप कुकी दृष्टिकोण की कमियों को माफ कर सकते हैं, तो यहां एक विचार है।

यदि आप अपनी साइट पर पहले से ही Google Analytics का उपयोग कर रहे हैं, तो आपको अद्वितीय उपयोगकर्ताओं को ट्रैक करने के लिए कोड लिखने की आवश्यकता नहीं है। Google Analytics आपके लिए __utmaकुकी मूल्य के माध्यम से , जैसा कि Google के प्रलेखन में वर्णित है । और इस मूल्य का पुन: उपयोग करके आप अतिरिक्त कुकी पेलोड नहीं बना रहे हैं, जिसमें पृष्ठ अनुरोधों के साथ दक्षता लाभ हैं।

और आप कुछ कोड आसानी से लिख सकते हैं जो उस मूल्य तक पहुंच सकते हैं, या इस स्क्रिप्ट के getUniqueId() फ़ंक्शन का उपयोग कर सकते हैं ।


क्या मैं एक getUniqueId()ही मशीन में विभिन्न ब्राउज़रों में एक ही आईडी का उपयोग कर सकता हूँ?
अंकुर अकवलिया

8

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

विचार करने के लिए एक अन्य विधि आईपी और होस्टनाम पहचान होगी (ध्यान रखें कि ये डायल-अप / गैर-स्थिर आईपी उपयोगकर्ताओं के लिए भिन्न हो सकते हैं, एओएल कंबल आईपी का भी उपयोग करता है)। हालाँकि चूंकि यह केवल नेटवर्कों की पहचान करता है इसलिए यह कुकीज़ की तरह काम नहीं कर सकता है।


नेटवर्क के उपयोग की पहचान करने वाले आईपी पते के साथ अच्छा बिंदु - एनएटी के साथ, एक आईपी पते के पीछे पूरे देश छिपे हो सकते हैं और आप कोई भी समझदार नहीं होंगे। IPv4 पते की कमी के साथ, आप अभी भी बहुत बड़ी कंपनियों या स्कूलों / विश्वविद्यालयों को अपने आउटबाउंड इंटरनेट ट्रैफ़िक के लिए एक एकल IP पता साझा करते देखेंगे।
पिस्कॉर ने बिल्डिंग

6

कुकीज़ को एक तरफ उपयोग करने के सुझाव, पूछताछ के लिए उपलब्ध पहचान गुणों का एकमात्र व्यापक सेट HTTP अनुरोध शीर्ष लेख में समाहित है। इसलिए उपयोगकर्ता एजेंट (यानी, ब्राउज़र) के लिए छद्म-विशिष्ट पहचानकर्ता बनाने के लिए इनमें से कुछ सबसेट का उपयोग करना संभव है। इसके अलावा, इस जानकारी का अधिकांश हिस्सा पहले से ही डिफ़ॉल्ट रूप से आपके वेब सर्वर सॉफ़्टवेयर के तथाकथित "एक्सेस लॉग" में लॉग इन किया जा रहा है और यदि ऐसा नहीं है, तो इसे करने के लिए आसानी से कॉन्फ़िगर किया जा सकता है। फिर, एक उत्कर्ष विकसित किया जा सकता है जो केवल इस लॉग की सामग्री को स्कैन करता है, उंगलियों के निशान बनाता हैप्रत्येक अनुरोध, जिसमें IP पता और उपयोगकर्ता एजेंट स्ट्रिंग, आदि शामिल हैं, विशिष्ट कुकीज़ की सामग्री सहित अधिक डेटा उपलब्ध है, इस फिंगरप्रिंट की विशिष्टता को जोड़ता है। हालांकि, जैसा कि कई अन्य लोग पहले ही बता चुके हैं, HTTP प्रोटोकॉल इस 100% को मूर्खतापूर्ण नहीं बनाता है - सबसे अच्छा यह केवल एक अच्छा संकेतक हो सकता है।


6

जब मैं एक ऐसी मशीन का उपयोग करता हूं जो मेरी ऑनलाइन बैंकिंग वेब साइट पर कभी नहीं गई है तो मुझे अतिरिक्त प्रमाणीकरण के लिए कहा जाता है। फिर, अगर मैं दूसरी बार ऑनलाइन बैंकिंग साइट पर वापस जाता हूं, तो मुझे अतिरिक्त प्रमाणीकरण के लिए नहीं कहा जाता है ... मैंने IE में सभी कुकीज़ हटा दी हैं और मेरी ऑनलाइन बैंकिंग साइट पर पूरी तरह से फिर से प्रमाणीकरण प्रश्न पूछने की अपेक्षा की है। मेरे आश्चर्य के लिए मुझे नहीं पूछा गया था। यह विश्वास नहीं करता है कि बैंक कुछ प्रकार के पीसी टैगिंग कर रहा है जिसमें कुकीज़ शामिल नहीं हैं?

यह बैंकों द्वारा उपयोग किया जाने वाला एक बहुत ही सामान्य प्रकार का प्रमाणीकरण है।

कहते हैं कि आप अपनी बैंक की वेबसाइट example-isp.com के जरिए एक्सेस कर रहे हैं। आपके द्वारा पहली बार वहां जाने पर आपसे आपका पासवर्ड, साथ ही अतिरिक्त प्रमाणीकरण मांगा जाएगा। एक बार जब आप पास हो जाते हैं, तो बैंक जानता है कि उपयोगकर्ता "thatisvaliant" को साइट पर पहुँचने के लिए प्रमाणीकृत किया गया है, जैसे example-isp.com।

जब आप उदाहरण-isp.com के माध्यम से साइट पर पहुँच रहे हैं, तो भविष्य में, यह अतिरिक्त प्रमाणीकरण (आपके पासवर्ड से परे) नहीं मांगेगा। यदि आप किसी अन्य-isp.com के माध्यम से बैंक तक पहुंचने का प्रयास करते हैं, तो बैंक फिर से उसी दिनचर्या से गुजरेंगे।

इसलिए संक्षेप में, आपके आईपी पते के आधार पर बैंक की पहचान आपके आईएसपी और / या नेटब्लॉक क्या है। जाहिर है कि आपके ISP का हर उपयोगकर्ता आप नहीं है, यही वजह है कि बैंक अब भी आपसे आपका पासवर्ड मांगता है।

क्या आपने कभी यह सत्यापित करने के लिए क्रेडिट कार्ड कंपनी को कॉल किया है कि जब आप किसी भिन्न देश में क्रेडिट कार्ड का उपयोग करते हैं तो चीजें ठीक हैं? एक ही अवधारणा।


4

वास्तव में, आप जो करना चाहते हैं वह नहीं किया जा सकता क्योंकि प्रोटोकॉल इसके लिए अनुमति नहीं देते हैं। यदि स्थिर IP का सार्वभौमिक उपयोग किया गया था, तो आप इसे करने में सक्षम हो सकते हैं। वे नहीं हैं, इसलिए आप नहीं कर सकते।

यदि आप वास्तव में लोगों की पहचान करना चाहते हैं , तो उन्हें लॉग इन करें।

चूंकि वे शायद आपकी वेब साइट पर अलग-अलग पृष्ठों पर घूम रहे हैं, इसलिए आपको उनके बारे में जानकारी रखने के लिए एक तरीका चाहिए।

जब तक वे लॉग इन होते हैं, और आप कुकीज़ / लिंक-पैरामीटर / बीकन / जो भी हो, के माध्यम से अपनी साइट के भीतर उनके सत्र को ट्रैक कर रहे हैं, तो आप इस बात का पूरा यकीन रख सकते हैं कि वे उस दौरान उसी कंप्यूटर का उपयोग कर रहे हैं।

अंततः, यह कहना गलत है कि यह बताता है कि वे कौन से कंप्यूटर का उपयोग कर रहे हैं यदि आपके उपयोगकर्ता आपके स्वयं के स्थानीय नेटवर्क का उपयोग नहीं कर रहे हैं और उनके पास स्थैतिक पते नहीं हैं।

यदि आप जो करना चाहते हैं वह उपयोगकर्ताओं के सहयोग से किया जा रहा है और प्रति कुकी केवल एक उपयोगकर्ता है और वे एकल वेब ब्राउज़र का उपयोग करते हैं, तो बस कुकी का उपयोग करें।


3

अद्वितीय आगंतुकों को निर्धारित करने के लिए कुकीज़ उपयोगी नहीं होंगी। एक उपयोगकर्ता कुकीज़ को साफ़ कर सकता है और साइट को ताज़ा कर सकता है - वह फिर से एक नए उपयोगकर्ता के रूप में वर्गीकृत किया जाता है।

मुझे लगता है कि ऐसा करने के बारे में जाने का सबसे अच्छा तरीका एक सर्वर साइड समाधान को लागू करना है (जैसा कि आपको अपने डेटा को स्टोर करने के लिए कहीं न कहीं आवश्यकता होगी)। इस तरह के डेटा के लिए आपकी आवश्यकताओं की जटिलता के आधार पर, आपको यह निर्धारित करने की आवश्यकता होगी कि एक अनूठी यात्रा के रूप में क्या वर्गीकृत किया गया है। एक समझदार विधि एक आईपी पते को अगले दिन वापस करने की अनुमति देगी और एक अनूठी यात्रा दी जाएगी। एक दिन में एक आईपी पते से कई यात्राओं को एकदूसरे के रूप में नहीं गिना जाना चाहिए।

उदाहरण के लिए, PHP का उपयोग करना, किसी आगंतुक के आईपी पते को प्राप्त करने के लिए तुच्छ है, और इसे एक पाठ फ़ाइल (या एक sql डेटाबेस) में संग्रहीत करना है।

एक सर्वर साइड सॉल्यूशन सभी मशीनों पर काम करेगा, क्योंकि आप उपयोगकर्ता को ट्रैक करने जा रहे हैं जब वह पहली बार आपकी साइट को लोड करता है। जावास्क्रिप्ट का उपयोग न करें, जैसा कि क्लाइंट साइड स्क्रिप्टिंग के लिए होता है, साथ ही उपयोगकर्ता ने इसे किसी भी स्थिति में अक्षम कर दिया होगा।

उम्मीद है की वो मदद करदे।


4
मेरी पत्नी और मैं घर पर NAT फ़ायरवॉल के पीछे चार अलग-अलग कंप्यूटरों से ब्राउज़ करते हैं। हम एक ही IP होने के रूप में दिखाते हैं, इसलिए आपकी योजना के अनुसार हम उसी उपयोगकर्ता के रूप में दिखाई देते हैं।
एडम नेस

क्या होगा अगर mysql में अतिरिक्त चर लिखने के लिए (यहाँ panopticlick.eff.org/browser-uniqueness.pdf का उल्लेख किया गया है )? इसलिए आईपी एड्रेस समान होगा, लेकिन कुछ अन्य विशेषताएं भिन्न हो सकती हैं।
एंड्रीस

3

क्योंकि मैं चाहता हूं कि सभी मशीनों और सभी ब्राउज़रों पर काम करने का समाधान (कारण के भीतर) मैं जावास्क्रिप्ट का उपयोग करके एक समाधान बनाने की कोशिश कर रहा हूं।

यह जावास्क्रिप्ट का उपयोग नहीं करने के लिए एक बहुत अच्छा कारण नहीं है?

जैसा कि दूसरों ने कहा है - कुकीज़ शायद आपका सबसे अच्छा विकल्प हैं - बस सीमाओं के बारे में पता होना चाहिए।


3

आप फिंगरप्रिंटज 2 का उपयोग कर सकते हैं

new Fingerprint2().get(function(result, components) {
  console.log(result) // a hash, representing your device fingerprint
  console.log(components) // an array of FP components
  //submit hash and JSON object to the server 
})

उसके बाद आप अपने सभी उपयोगकर्ताओं को मौजूदा के खिलाफ जांच कर सकते हैं और JSON समानता की जांच कर सकते हैं, इसलिए भले ही उनके फिंगरप्रिंट म्यूट हों, फिर भी आप उन्हें ट्रैक कर सकते हैं


2

मुझे लगता है कि निर्णय है कि मैं प्रोग्राम को विशिष्ट रूप से एक कंप्यूटर की पहचान नहीं कर सकता हूं जो मेरी वेब साइट पर जा रहा है।

मेरा निम्नलिखित प्रश्न है। जब मैं एक ऐसी मशीन का उपयोग करता हूं जो मेरी ऑनलाइन बैंकिंग वेब साइट पर कभी नहीं गई है तो मुझे अतिरिक्त प्रमाणीकरण के लिए कहा जाता है। फिर, अगर मैं दूसरी बार ऑनलाइन बैंकिंग साइट पर वापस जाता हूं, तो मुझे अतिरिक्त प्रमाणीकरण की आवश्यकता नहीं है। मेरे प्रश्न के उत्तर को पढ़कर मुझे लगा कि इसमें एक कुकी शामिल होनी चाहिए। इसलिए, मैंने IE में सभी कुकीज़ हटा दीं और मेरे ऑनलाइन बैंकिंग साइट पर पूरी तरह से फिर से प्रमाणित होने की उम्मीद करते हुए पुनः लिखा। मेरे आश्चर्य के लिए मुझे नहीं पूछा गया था। यह विश्वास नहीं करता है कि बैंक कुछ प्रकार के पीसी टैगिंग कर रहा है जिसमें कुकीज़ शामिल नहीं हैं?

इसके अलावा, आज बहुत से गुग्लिंग के बाद मुझे निम्नलिखित कंपनी मिली जो एक समाधान बेचने का दावा करती है जो विशिष्ट रूप से उन मशीनों की पहचान करती है जो एक वेब साइट पर जाती हैं। http://www.the41.com/products.asp

मैं सभी अच्छी जानकारी की सराहना करता हूं अगर आप आगे इस परस्पर विरोधी जानकारी को स्पष्ट कर सकते हैं तो मैंने पाया कि मैं इसकी बहुत सराहना करूंगा।


इसके आधार पर: a41.com/download/… ऐसा लगता है कि उनका समाधान उपयोगकर्ता को सॉफ्टवेयर का एक टुकड़ा डाउनलोड करने के लिए है जो मशीन पर आधारित एक विशिष्ट पहचानकर्ता बनाता है और इसे कुछ लॉगिन क्रेडेंशियल के साथ जोड़ता है।
2

जैसा कि पहले ही उल्लेख किया गया है, आपने फ़्लैश कुकी का उपयोग करके अपने बैंक को नियमबद्ध नहीं किया है। फ्लैश कूकीज़ को कैसे साफ़ करें और मुद्दे के बारे में अन्य चर्चाएँ: tips.vlaurie.com/2007/10/24/…
micahwittman

मेरा अनुमान: बैंक शायद इस बात पर भरोसा करता है कि यदि आप (१) अपना उपयोगकर्ता नाम जानते हैं, (२) अपना पासवर्ड जानते हैं, और या तो (३ ए) के पास अपना कुकी है, या फिर (३ बी) एक आईपी पते से आते हैं जो उन्होंने पहले किया है आपके साथ जुड़ा हुआ
जैक पीटरसन

2

मैं कुकीज़ और फ्लैश कुकीज़ के संयोजन का उपयोग करके ऐसा करूंगा। एक GUID बनाएं और इसे कुकी में संग्रहीत करें। यदि कुकी मौजूद नहीं है, तो इसे फ़्लैश कुकी से पढ़ने का प्रयास करें। यदि यह अभी भी नहीं मिला है, तो इसे बनाएं और इसे फ्लैश कुकी पर लिखें। इस तरह से आप ब्राउज़रों में एक ही GUID साझा कर सकते हैं।


1

मुझे लगता है कि कुकीज़ वही हो सकती हैं जो आप खोज रहे हैं; इस तरह से अधिकांश वेबसाइट्स आगंतुकों की विशिष्ट पहचान करती हैं।


0

मान लें कि आप उपयोगकर्ता को नियंत्रण में नहीं रखना चाहते, तो आप नहीं कर सकते। वेब उस तरह से काम नहीं करता है, जिसके लिए आप सबसे अच्छी उम्मीद कर सकते हैं कि कुछ आंकड़े हैं।

यदि यह आपके आगंतुक को कुछ सॉफ़्टवेयर स्थापित करने और TCPA का उपयोग करने के लिए बाध्य करने का विकल्प है, तो आप कुछ खींच सकते हैं।


0

मेरी पोस्ट एक समाधान नहीं हो सकती है, लेकिन मैं एक उदाहरण प्रदान कर सकता हूं, जहां यह सुविधा लागू की गई है।

यदि आप www.supertorrents.orgकंप्यूटर से पहली बार साइनअप पृष्ठ पर जाते हैं, तो यह ठीक है। लेकिन यदि आप पृष्ठ को ताज़ा करते हैं या पृष्ठ को फिर से खोलते हैं, तो यह पहचानता है कि आपने पहले पृष्ठ का दौरा किया है। असली सुंदरता यहां आती है - यह पहचानता है भले ही आप विंडोज या अन्य ओएस को फिर से स्थापित करें।

मैंने कहीं पढ़ा है कि वे सीपीयू आईडी स्टोर करते हैं। हालांकि मैं यह नहीं पता लगा सका कि वे इसे कैसे करते हैं, मैं गंभीरता से संदेह करता हूं, और वे ऐसा करने के लिए मैक एड्रेस का उपयोग कर सकते हैं।

मैं निश्चित रूप से साझा करता हूँ अगर मुझे लगता है कि यह कैसे करना है।


www.supertorrents.org मर चुका है
टूलकिट

0

एक चाल:

  1. 2 पंजीकरण पृष्ठ बनाएँ:

    पहला पंजीकरण पृष्ठ: बिना किसी ईमेल या सुरक्षा जांच के (सिर्फ उपयोगकर्ता नाम और पासवर्ड के साथ)

    दूसरा पंजीकरण पृष्ठ: उच्च सुरक्षा स्तर के साथ (ईमेल सत्यापन अनुरोध और सुरक्षा छवि और आदि)

  2. ग्राहकों की संतुष्टि के लिए, और आसान पंजीकरण के लिए, डिफ़ॉल्ट पंजीकरण पृष्ठ होना चाहिए (पहला पंजीकरण पृष्ठ) लेकिन (प्रथम पंजीकरण पृष्ठ) में एक छिपा प्रतिबंध है। यह आईपी प्रतिबंध है। यदि एक आईपी ने दूसरी बार, (उदाहरण के लिए 1 घंटे से कम समय के लिए) ब्लॉक पेज दिखाने के बजाय पंजीकरण करने की कोशिश की। आप स्वचालित रूप से (दूसरा पंजीकरण पृष्ठ) दिखा सकते हैं ।

  3. में (प्रथम पंजीकरण पृष्ठ) आप (उदाहरण के लिए: ब्लॉक सिर्फ 1 घंटे या 24 घंटे के लिए 1 आईपी से 2 प्रयत्न) सेट कर सकते हैं और बाद में (उदाहरण के लिए) 1 घंटा, आपको लगता है कि आईपी से पहुँच स्वचालित रूप से खोल सकते हैं

कृपया ध्यान दें: (प्रथम पंजीकरण पृष्ठ) और (दूसरा पंजीकरण पृष्ठ) अलग-अलग पृष्ठों में नहीं होना चाहिए। आप सिर्फ 1 पेज बनाते हैं। (उदाहरण के लिए: register.php) और फर्स्ट PHP स्टाइल और सेकंड PHP स्टाइल के बीच स्विच करने के लिए इसे स्मार्ट बनाएं


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