मैं एक जावा डेस्कटॉप क्लाइंट एप्लिकेशन लिख रहा हूं जो दूरस्थ MySQL सर्वर से डेटा पुनर्प्राप्त करता है। विकास उद्देश्यों के लिए मैंने इसे सीधे MySQL सर्वर से कनेक्ट किया है (यानी DriverManager.getConnection (DatabaseURL) आदि के साथ), लेकिन एक वेब सेवा (एक बार बनाया गया था) का उपयोग करने के लिए आगे बढ़ने का इरादा रख रहा है। मेरा सवाल यह है कि क्या मैं सीधे सीधा कनेक्शन जारी नहीं रख सकता था?क्या डेस्कटॉप क्लाइंट को सीधे MySQL से कनेक्ट करना समझदारी है?
मुझे लिखने के लिए और अधिक कोड देने के लिए वेब सेवा क्या होगी? मुझे अपना खुद का प्रमाणीकरण लागू करना होगा; MySQL पर भरोसा करने में क्या गलत है?
(मैं इस सवाल को नकारात्मक में बल्कि वाक्यांश में पढ़ रहा हूं, क्योंकि मुझे यह विचार मिलता है कि यह प्रतिमान कुछ दिनों में कुछ हद तक डूब गया है, यही कारण है कि मैं इसे पूछ रहा हूं, क्योंकि ऐसा लगता है कि यह पूरी तरह से ठीक है करने के लिए काम।)
किसी भी अंतर्दृष्टि के लिए धन्यवाद जो आप मुझे दे सकते हैं!
हां, यह एक बड़ी समस्या प्रतीत होता है, लेकिन मुझे लगा कि मैं ग्राहकों को उचित संग्रहित प्रक्रियाओं तक पहुंच प्रतिबंधित कर सकता हूं और सभी ठीक होंगे। शायद इसके लिए और भी कुछ है। –
ऐप के अंदर उपयोगकर्ता नाम/पास के साथ कनेक्शन स्ट्रिंग को एम्बेड क्यों नहीं करें? इस तरह ऐप के पास डेटाबेस तक पूर्ण पहुंच है, लेकिन वास्तविक उपयोगकर्ता अभी भी लॉगिन प्रमाण-पत्र नहीं जानता है। जाहिर है, आप ऐप कोड को नियंत्रित करते हैं, तो चिंता कहां है? – JoeCool
@ जॉयकूल हमलावर के लिए, क्रेडेंशियल्स ढूंढना अनपॅक किए गए जार पर 'स्ट्रिंग्स' चलाने जैसा आसान है। आप इसके समाधान का प्रस्ताव दे सकते हैं, लेकिन उन सभी में एक ही मूल समस्या है जो डीआरएम है, अर्थात् किसी बिंदु पर आपको उपयोगकर्ता सिस्टम पर उपयोगकर्ता लॉग इन को क्लीयरक्स्ट में प्राप्त करने की आवश्यकता है। उपयोगकर्ता उस सिस्टम को नियंत्रित करता है, ताकि वे उनको प्राप्त कर सकें। यह सब एक बड़ी समस्या नहीं है यदि आपका ऐप अपने पूरे जीवनकाल में 3 कर्मचारियों द्वारा उपयोग की जाने वाली कुछ चीजें हैं, इसलिए जब आप वास्तव में इसे कई लोगों को वितरित करते हैं, जिनमें से कुछ आपको बहुत पसंद नहीं करते हैं। – wds