मुझे हाल ही में इस मुद्दे से निपटना पड़ा, और मैंने जो किया वह दो नए डेटाबेस उपयोगकर्ता बना। पहली बार अपनी खुद की स्कीमा में टेबल पर पढ़ने के विशेषाधिकारों के अलावा, कोई विशेषाधिकार नहीं था। दूसरे ने "लोड" टेबल में विशेषाधिकार डाले थे जो मैं अपने कोड के साथ पॉपुलटिंग कर रहा था।
अनधिकृत उपयोगकर्ता को अपनी स्कीमा में "प्रमाण-पत्र" तालिका मिली, जिसमें सम्मिलित उपयोगकर्ता के प्रमाण-पत्र और पासवर्ड (मेरे ऐप के लिए आवश्यक कुछ अन्य पैरामीटर के साथ) था।इसलिए कोड में केवल अप्रतिबंधित उपयोगकर्ता के लिए प्रमाण-पत्र शामिल थे, हार्ड-कोड किए गए और समय-समय पर बदल गए, और रनटाइम पर यह आवेषण करने के लिए आवश्यक प्रमाण-पत्र देखेंगे। लुकअप सर्वर के बीच, हमारे फायरवॉल के पीछे हुआ था, इसलिए यह कुछ बाहरी व्यक्ति नहीं था जो बाहर निकल सकता था।
यह उन डेवलपर्स नहीं थे जिन्हें मैं चिंतित था, यह बाहरी और शक्तिशाली उपयोगकर्ता थे, जो सैद्धांतिक रूप से वेब सर्वर तक पहुंच प्राप्त कर सकते थे और आईएनआई फाइलों पर देख सकते थे। इस तरह, केवल डेवलपर्स और डीबीए स्नूप कर सकते हैं (और हम सभी एक-दूसरे को जानते हैं)। किसी और को यह पता लगाना होगा कि डेटाबेस से पूछताछ कैसे करें, एसक्यूएल का उपयोग करने के लिए पता लगाएं, कोड कैसे चलाएं, यह पता लगाना असंभव नहीं है, लेकिन निश्चित रूप से बट में एक विशाल बहु-चरण दर्द और इसके लायक नहीं है।
सुंदर सुरक्षित - सिद्धांत रूप में, वैसे भी ...
क्या ओएस, वेब-सर्वर और डेटाबेस आप उपयोग कर रहे हैं? यह प्रासंगिक हो सकता है। उदाहरण के लिए, विंडोज़ मशीन पर चल रहे एमएस एसक्यूएल सर्वर और एक वेब सर्वर का उपयोग करके, आप एकीकृत सुरक्षा का उपयोग कर सकते हैं ताकि वेब सर्वर प्रक्रिया स्वयं डेटाबेस के लिए प्रमाणित की जाएगी, और PHP कोड को उपयोगकर्ता नाम और पासवर्ड की आवश्यकता नहीं होगी। –