ब्राउज़र और एक देशी एप्लिकेशन के बीच सुरक्षित रूप से संचार करना


12

मैं ऐसे वेब एप्लिकेशन पर काम कर रहा हूं, जिसे डेटा की जरूरत है वह केवल अपने स्थानीय रूप से स्थापित मूल एप्लिकेशन ब्राउज़र से प्राप्त कर सकता है।

आप ब्राउज़र सैंडबॉक्स के आसपास कैसे प्राप्त कर सकते हैं ताकि आप देशी एप्लिकेशन के साथ (सुरक्षित रूप से, चूंकि डेटा संभावित रूप से संवेदनशील है) संवाद कर सकें।

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


1
आप किसी प्रकार का समाधान प्राप्त करने में सक्षम हो सकते हैं जहां मूल एप्लिकेशन में एक छोटा वेब सर्वर होता है जो लोकलहोस्ट पर चलता है।
आमोन

मैं भी यही सोच रहा था ... मुझे ऐसी चिंताएँ थीं, जो "चिंतित" नहीं होंगी। क्या आज भी ऐसा करने के लिए कोई उदाहरण हैं? (यह एक उत्तर में लिखें और आप शायद अंक प्राप्त करेंगे)
ज़क कुस

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

जवाबों:


7

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

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

C / C ++ (Mongoose, NxWeb, civetweb etc) के लिए कई छोटे और कुशल एम्बेडेड वेबसर्वर हैं, C # एक पूर्ण-पर WCF सर्वर के लिए जाने के लिए, अजगर इसमें IIRC में थोड़ा वेबसर्वर के साथ आता है।


मैं इस तरह से एक समाधान पर काम कर रहा हूं, लेकिन कुछ ऐसे मुद्दे हैं जब ब्राउज़र एक स्थानीय डोमेन से वेबपृष्ठ से वेबसैट के माध्यम से जुड़ने की कोशिश करता है (www.mydomain.com) एक लोकलहोस्ट वेबसोकेट सर्वर के साथ, विशेष रूप से तब जब वेबपृष्ठ सेवा में हो HTTPS में wss (SSL के साथ WebSocket) का उपयोग करने के लिए वेबसोकेट सर्वर को कॉन्फ़िगर करने की आवश्यकता होती है। यदि आप वेबसोकेट सर्वर को "सुरक्षित" करने के लिए स्व-हस्ताक्षरित प्रमाण पत्र का उपयोग करते हैं तो ब्राउज़र आपके वेबसोकेट कनेक्शन को पसंद नहीं करेगा। जब आप असुरक्षित स्थानीय प्रमाणपत्र स्वीकार कर लेंगे, तो फ़ायरफ़ॉक्स इसे अनुमति देगा, लेकिन अन्य ब्राउज़र आपको इतना आसान कनेक्ट नहीं करने देंगे।
डेविड

1
सी # के लिए इन दिनों सबसे अच्छा एम्बेडेड वेबसर्वर शायद सेल्फ होस्टेड ओविन है।
एबेन स्कोव पेडरसन

8

कुछ ऐसे तरीके हैं जिनसे आप एक देशी ऐप और एक ब्राउज़र ऐप को मिटा सकते हैं।

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

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

या यदि आपको मूल कार्यक्षमता की आवश्यकता है ... तो केवल एक ही मूल एप्लिकेशन बनाएं।

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


मूल ऐप से मुझे जो डेटा चाहिए, वह उस मशीन (उपयोगकर्ता के बजाय) स्वीकार्य है। यदि आप एक सामान्य वेब सर्वर का उपयोग बीच में करते हैं, तो क्या आप सुनिश्चित कर सकते हैं कि ब्राउज़र जिस मशीन पर है, वही मूल ऐप का मूल्यांकन है। इसके अलावा, पूरी तरह से सहमत हूँ, shoudln't के लिए दो अच्छे कारण नहीं हैं, लेकिन हमारे पास हमारे कारण हैं ^ _ ^
Zak कुस

इसके अलावा, यह मेरे लिए स्पष्ट नहीं है कि मूल ऐप में ब्राउज़र को कैसे एम्बेड करना वास्तव में ब्राउज़र और मूल ऐप के बीच संचार की अनुमति देगा
ज़क कुस

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

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

तकनीकी रूप से मैं इस बात से सहमत हूँ कि वेब दृश्य के साथ एक मूल ऐप सबसे आसान तरीका है। हालाँकि, इस जर्मन भाषा के लेख के अनुसार एंड्रॉइड 4.3 के लिए ऑनलाइन एंड्रॉइड वेब-दर्शक और नीचे गंभीर सुरक्षा मुद्दे हैं जो तय नहीं किए जा सकते हैं।
k3b
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.