2010-05-03 12 views
14

मैंने अभी ओएथ में देखना शुरू कर दिया और यह वास्तव में अच्छा लग रहा है। मेरे पास अभी रुबी में oauth with twitter working है।ओएथ से सुरक्षित रूप से टोकन/गुप्त/आदि स्टोर करने का सही तरीका?

अब मैं सोच रहा हूं, मेरे स्थानीय डेटाबेस और सत्र में प्रतिक्रियाओं को संग्रहीत करने के लिए अनुशंसित सुरक्षित तरीका क्या है?

  • मुझे क्या स्टोर करना चाहिए?
  • मुझे इसे कहां स्टोर करना चाहिए?

यह उदाहरण twitter-oauth-with-rails एप्लिकेशन स्टोर सत्र में एक user.id, और उपयोगकर्ता तालिका token और secret है। लेकिन ऐसा लगता है कि यह हैक करना वास्तव में आसान है और केवल परीक्षण उपयोगकर्ता आईडी में गुजरकर रहस्य प्राप्त कर सकता है, नहीं?

उत्तर

1

यदि आप एक वेब एप्लिकेशन विकसित कर रहे हैं तो आप hidden फ़ील्ड को उपयोगकर्ता द्वारा सबमिट किए गए फॉर्म में जोड़ सकते हैं, कुछ हैश-जैसे मान user.id के साथ गणना की गई है, इसलिए बुरे लोग उस मान को नहीं बदल सकते हैं और केवल "अनुमान" के लिए उपयोग कर सकते हैं टोकन

6

टोकन उपभोक्ता कुंजी/आपके ट्विटर ऐप के रहस्य के बिना बेकार हैं क्योंकि वे प्रत्येक ऐप के लिए समान नहीं हैं बल्कि उपभोक्ता कुंजी/गुप्त पर निर्भर हैं।

सत्र चर प्राप्त करने के लिए आपको सत्र आईडी अनुमान लगाना होगा जो पूरा करना आसान नहीं है।

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

अपडेट: मुझे यकीन नहीं है कि अगर मैं आईडी का अनुमान लगाकर डेटाबेस से टोकन तक पहुंच कर सही ढंग से समझता हूं तो मुझे यकीन नहीं है।

क्या आपके पास कोई प्रमाणीकरण है ताकि उपयोगकर्ताओं को अपने डेटा तक पहुंचने के लिए कुछ प्रमाण-पत्र दर्ज करना पड़े? आपको टोकन को उसी तरह स्टोर करना चाहिए जैसे आप उपयोगकर्ता ईमेल पता या पासवर्ड स्टोर करते हैं और केवल प्रमाणित उपयोगकर्ता ही इसे एक्सेस करने में सक्षम होना चाहिए।

+0

धन्यवाद, यह सहायक है। मैं बस ऐसा करने का सबसे अच्छा तरीका समझने की कोशिश कर रहा हूं क्योंकि कई लोगों ने सत्र में _any_ गोपनीय डेटा कभी स्टोर नहीं किया है। लेकिन ऐसा लगता है कि आईडी में डेटाबेस से उपयोगकर्ता मॉडल तक पहुंचने के लिए संभव हो सकता है, अगर यह सत्र में था, _if_ डेवलपर ने कुछ खुलासा किया। ऐसा कुछ। –

+0

सत्र डेटा उपयोगकर्ता के लिए सुलभ नहीं है क्योंकि वे केवल सत्र आईडी को जानते हैं लेकिन सत्र में संग्रहीत नहीं है। किसी अन्य उपयोगकर्ता के लिए सत्र डेटा तक पहुंचने का एकमात्र तरीका सत्र अपहरण का उपयोग करना है, लेकिन यह सिर्फ एक छोटी संख्या को दूसरे के साथ नहीं बदल रहा है। यहां देखें: http://en.wikipedia.org/wiki/Session_hijacking –

+0

यदि आप इसके बारे में सोचते हैं तो यह बताने का कोई और तरीका नहीं है कि सत्र किस उपयोगकर्ता से संबंधित है, क्योंकि आप केवल कुकीज़ का उपयोग कर सकते हैं और यही वह सत्र है जो अधिक सुरक्षित है लेकिन अधिक सुरक्षित है कुकी में उपयोगकर्ता आईडी को संग्रहीत करने की तुलना में। –

संबंधित मुद्दे

 संबंधित मुद्दे