क्या यह केवल एक यादृच्छिक URL द्वारा आदेश स्थिति पृष्ठ को सुरक्षित करने के लिए पर्याप्त है?


11

हमारे ऑनलाइन दुकान में ग्राहक (कॉर्पोरेट) ग्राहक ने कुछ आइटम खरीदे, हम एक सिंहावलोकन के साथ एक ईमेल भेजते हैं जो उसने उसे खरीदा है।

हम अपने ग्राहक को प्राप्त भुगतान, पैकेट ट्रैकिंग इत्यादि के बारे में सूचित करना चाहते हैं, मैं इसे प्रत्येक ऑर्डर को रैंडम आईडी बताकर हल करूंगा और प्रत्येक मेल में एक लिंक जोड़ूंगा। लिंक इस तरह हो सकता है: http://shop.foo.bar/order/rwklvc46g9wt7kvy09f1

क्या आप डेटा की सुरक्षा के लिए अतिरिक्त उपाय करेंगे? या एक पूरी तरह से अलग समाधान चुनें?

लाभ:

  • मेल के अनुसार कोई भी अपडेट स्थिति नहीं (विशेषकर यदि लगातार अपडेट होती है)
  • एकल सूचना स्रोत (पुराना नहीं)
  • साझा करने योग्य (जैसे अपने बॉस या सहकर्मियों के लिए)

नुकसान:

  • सार्वजनिक रूप से सुलभ वेबसाइट (जैसे फोन नंबर, भुगतान विवरण) पर निजी डेटा उजागर

4
हाय दान, वेबमास्टर्स में आपका स्वागत है। आपको लगता है कि आपने दो समान उपयोगकर्ताओं () का निर्माण किया है और दूसरे "डैन" के साथ अपने प्रश्न को संपादित किया है - इस वजह से यह एक कतार में है जो अनुमोदन की प्रतीक्षा कर रहा है। सवाल पूछने वाले उपयोगकर्ता हमेशा अपने स्वयं के प्रश्नों को स्वतंत्र रूप से संपादित कर सकते हैं और उत्तर आदि पर टिप्पणी कर सकते हैं। अन्य "डान" में इन दोनों में से किसी को भी करने के लिए पर्याप्त प्रतिष्ठा नहीं है - क्योंकि उन्होंने सवाल नहीं पूछा था।
MrWhite

जवाबों:


8

अतिरिक्त सुरक्षा के बिना, नहीं। रैंडम URL को हर समय क्रॉल किया जाता है। हालांकि, यह अच्छा है जब उपयोगकर्ता को प्रमाणित करने के लिए साइन-ऑन पेज के साथ किया जाता है।

एक मध्यवर्ती समाधान यह सुनिश्चित करने के लिए है कि स्थिति पृष्ठ में कोई व्यक्तिगत डेटा नहीं है, केवल सामान्य जानकारी है। उदाहरण के लिए, 'PAID BY CC' के बजाय 'PAID by VISA 1234567891' और 'भेज दिया' के बजाय 'Shipped to John Doe, 123 Blue Street', आदि।


0

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

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

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


-1

हाँ यह पर्याप्त है:

  1. आप बस ईमेल के माध्यम से लिंक भेजते हैं, और इसे Google को सबमिट न करें। लेकिन आपके प्रश्न के अनुसार यह वही है जो आप करते हैं, इसलिए Google के पास इस लिंक को जानने का कोई तरीका नहीं है कि इसे कभी भी अनुक्रमित / क्रॉल नहीं किया जाएगा।

  2. आप लिंक को रैंडम और पर्याप्त रूप से लंबे समय तक इस्तेमाल करने वाली आईडी बनाते हैं। यदि यह यादृच्छिक नहीं है, लेकिन आप एक साधारण वृद्धिशील पूर्णांक का उपयोग करते हैं, क्योंकि आपके ग्राहक में से एक आईडी आसानी से पता लगा सकता है कि लिंक में वृद्धिशील संख्याओं को दर्ज करके वह अन्य सभी आदेशों को पढ़ सकता है। यदि यह यादृच्छिक है, लेकिन लंबे समय तक पर्याप्त नहीं है (मान लें कि यह केवल 4 अंकों / अक्षरों से बना है) तो अपने आदेशों को बल देने के लिए होम पीसी के साथ भी यह आसान होगा, मुझे बस (26 + 10) ^ 4 = की कोशिश करनी होगी 1,679,616 संभावित संयोजन। मान लीजिए कि मैं एक स्क्रिप्ट चलाता हूं जो प्रति सेकंड एक लिंक की कोशिश करता है, यह सभी संभावित लिंक को बल देने और आपके सभी आदेशों को पढ़ने के लिए स्क्रिप्ट को 20 दिनों से कम समय तक ले जाएगा।

  3. महत्वपूर्ण: बढ़ी हुई सुरक्षा के लिए आपको कुछ दिनों के बाद (यानी 1 महीने के बाद) लिंक को हटा देना चाहिए। यह इसे सुरक्षित बनाने की चाल है। इस तरह से भी अगर कोई आपके लिंक को बल देने की कोशिश करता है, तो उसे भारी कैल्क पॉवर की आवश्यकता होगी अन्यथा उनका हमला कभी भी तेज नहीं होगा, क्योंकि वे डिलीट होने से पहले सभी संभावित संयोजनों को आजमा सकते हैं। और यहां तक ​​कि अगर उसे एक बड़ी कैल्क शक्ति मिली है, तो वह शायद ही प्रति सेकंड एक से अधिक लिंक का परीक्षण करने में सक्षम होगा क्योंकि आपके आदेशों को संभालने वाला सर्वर उसके कनेक्शन को मना करना शुरू कर सकता है यदि वह एक बार एक बार कनेक्ट करने का प्रयास करता है। FYI करें: लिंक को हटाना, इसका मतलब यह नहीं है कि आपको DB में सभी ऑर्डर को हटाना होगा। आप ऑर्डर टेबल के लिए एक और प्राथमिक कुंजी का उपयोग कर सकते हैं (एक साधारण ऑटोइंटरमेंट इंट) और आप एक UNIQUE फ़ील्ड (जो NULL की अनुमति देता है) लिंक_आईडी का उपयोग कर सकते हैं जिसे आप लिंक में दर्ज करते हैं। एक महीने के बाद आपको केवल link_id का मान हटाना होगा और इसे NULL सेट करना होगा। इस तरह से आदेश अभी भी टेबल में रहेगा और आपके व्यवस्थापक पैनल से देखा जा सकता है, लेकिन सीधे लिंक अब आदेश पृष्ठ को देखने के लिए मान्य नहीं होगा।

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