दिलचस्प पोस्ट
मैं Red Hat Linux पर मानक उपकरण का उपयोग कर फ़ाइल में पंक्तियों को यादृच्छिक कैसे कर सकता हूँ? TypeError: console.log.apply पर अवैध इनवॉइस क्या HTML चेकबॉक्सेस को केवल पढ़ने के लिए सेट किया जा सकता है? मौजूदा तालिका में SQL सर्वर का चयन करें एंड्रॉइड ब्राउज़र में एक लिंक मेरे ऐप को शुरू करें? एक रूट कंटेनर में एकाधिक ग्लासपेन को लेयर करना फ़्लोटिंग पॉइंट डिविजन बनाम फ़्लोटिंग पॉइंट गुणन एक्लिप्स में "कंपाइलर अनुपालन स्तर" क्या है? एंड्रॉइड स्क्रीन आकार एचडीपीआई, एलडीपीआई, एमडीपीआई जावास्क्रिप्ट में दो सरणियों और डी-डुप्लिकेट मदों को कैसे मर्ज करें सी। स्कैनफ़ में इनपुट से पहले हो जाता है मुसीबत उदात्त पाठ 3 में डिफ़ॉल्ट कोड स्निपेट कैसे बदलेंगे? बजाय नियंत्रक देखने के लिए कैसे (या नेविगेशन स्टैक से हटा) segue धक्का के बजाय? गोलियों में सिस्टम बार छुपाएं मैं एक जावा स्विंग एनीमेशन चिकनी कैसे कर सकता हूं

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

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

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

मैं मदद की सराहना करता हूँ धन्यवाद।

संपादित करें:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

यह आलेख कभी भी लगातार ट्रैकिंग विधियों की समीक्षा करता है, जैसे कभी कुकियों, श्वसन http और फ्लैश कुकीज़, और कुकी सिंकिंग।

कैनवास फिंगरप्रिंटिंग के बारे में और जानकारी यहां दी गई है:

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

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

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

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

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

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

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

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

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

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

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

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

परिचय

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

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

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

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

 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. यदि उपयोगकर्ता लॉग इन नहीं हुआ है तो सत्र की अवधि समाप्त हो जाती है। यदि कोई उपयोगकर्ता लॉग इन नहीं हुआ है, तो वे एक अतिथि सत्र का उपयोग करेंगे जो उपयोगकर्ता द्वारा कुकीज़ और ब्राउज़र कैश को हटाए जाने पर अमान्य हो जाएगा।

कार्यान्वयन

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

मूल बातें

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

इसे लागू करने के लिए मैं ब्राउज़र कैशिंग तंत्र ( आरएफसी ), वेबस्टोरेज एपीआई ( एमडीएन ) और ब्राउज़र कुकीज ( आरएफसी , गूगल एनालिटिक्स ) का उपयोग करेगा।

कानूनी

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

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

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

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

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

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

और नुकसान:

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

UUIDs

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

तंत्र

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

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

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

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

 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") || ""

मैं ब्राउज़र में ट्रैकिंग कैसे कर सकता हूं? Js sticky ब्राउज़र में?

हम इसे कैश-कंट्रोल , अंतिम-संशोधित और ईटग HTTP हेडर का उपयोग करके हासिल कर सकते हैं। हम इटैग शीर्ष लेख के लिए SessionID उपयोग कर सकते हैं:

 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 द्वारा tracking.js हमारा सर्वर 304 Not Modified नतीजे के साथ प्रतिक्रिया करेगा और tracking.js .js की स्थानीय प्रतिलिपि को लागू करेगा।

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

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

मान्यकरण

मान लीजिए हक्सर एक्स हमारे ग्राहकों को कुकीज़ चुरा रहा है, जबकि वे अभी भी लॉग इन हैं। हम उनकी रक्षा कैसे करते हैं? क्रिप्टोग्राफी और ब्राउज़र फिंगरप्रिंटिंग बचाव में याद रखें कि 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(decrypt(getRandomBytes($sid)), getSignature($sid), $hk) ) return false; return true; 

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

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

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

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

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

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

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

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

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

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

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

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

चूंकि वे संभवत: आपकी वेब साइट के विभिन्न पृष्ठों के आसपास घूम रहे होंगे, इसलिए आपको उन पर नज़र रखने का एक तरीका चाहिए, जैसे वे इसके बारे में आगे बढ़ते हैं

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

यदि यह आपके विज़िटर को कुछ सॉफ़्टवेयर स्थापित करने और टीसीपीए का इस्तेमाल करने के लिए मजबूर करने का विकल्प है तो आप कुछ बंद कर सकते हैं।

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

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

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

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

एक चाल:

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

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

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

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

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

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