2012-07-26 6 views
14

एक सिग्नलआर हब कक्षा में आप उपयोगकर्ता के लिए Context.ConnectionId पर कॉल करने में सक्षम हैं। मैं उपयोगकर्ताओं को एक साथ जोड़ने के लिए इन्हें Dictionary<string, string> में स्टोर करना चाहता हूं। क्या किसी उपयोगकर्ता के क्लाइंट को उपयोगकर्ता के क्लाइंट में लौटने में कोई जोखिम या सुरक्षा भेद्यता है?क्लाइंट को अन्य उपयोगकर्ता के कनेक्शन आईडी लौटने का कोई भी जोखिम?

उत्तर

25

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

यह मूल रूप से फॉर्म ऑथ टिकट के समान विचार है। निश्चित रूप से यह एन्क्रिप्ट किया गया है, लेकिन अगर कोई इसे पकड़ लेता है तो वे आप पर भरोसा कर सकते हैं।

MessengR में इस तर्क का नमूना देखें। https://github.com/davidfowl/MessengR/blob/master/MessengR/Hubs/Chat.cs#L67

+0

तो यह सिफारिश होगी ... –

+6

यह ठीक है, मुझे इसे पुन: स्थापित करें "अनन्य एक और आईडी बनाएं और कनेक्शन आईडी से मैपिंग को आंतरिक रूप से अपनी आईडी में संग्रहीत करें ताकि आप उन्हें वापस मैप कर सकें।" – davidfowl

+0

अह्ह गॉचा! टा :) –