2008-12-02 16 views
10

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

मेरा प्रश्न यह है कि उन कॉन्फ़िगरेशन फ़ाइलों को सुरक्षित करने का सबसे अच्छा तरीका क्या है जिनमें कनेक्शन स्ट्रिंग हैं?

फ़ाइल पर [4+] 00 अनुमतियों के साथ एक अलग उपयोगकर्ता है? क्या मुझे उन्हें एन्क्रिप्ट करना चाहिए? ऐसा लगता है कि समस्या को कहीं और स्थानांतरित करना है ताकि मुझे चिंता हो कि एन्क्रिप्शन कुंजी कहां स्टोर करें। मुझे एहसास है कि पर्ल डेवलपर्स को स्वयं की कनेक्शन स्ट्रिंग की आवश्यकता होगी क्योंकि वे केवल डेटाबेस अनुमतियां निष्पादित करेंगे।

+0

क्या यह एक कमांड लाइन ऐप है, या एक वेब ऐप है? –

+0

मुझे लगता है कि 99% से अधिक मामलों में PHP == वेब ऐप्स मानना ​​सुरक्षित है। –

+0

यह एक कानूनी सवाल है। सिस्टम के हिस्से वास्तव में सीएलआई का उपयोग करते हैं। –

उत्तर

7

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

मैं "स्क्रिप्ट उपयोगकर्ता" के स्वामित्व वाली फ़ाइलों w/कनेक्शन स्ट्रिंग को चिह्नित करता हूं और वर्णन के रूप में उन्हें एक्सेस देता हूं।

(ब्रावो एहसास है कि कनेक्शन स्ट्रिंग को एन्क्रिप्ट आप इस उदाहरण में, कुछ नहीं खरीदती के लिए। सुरक्षा अस्पष्टता के माध्यम से प्रतिकूल है।)

+0

मैं जो सोच रहा था उसकी अच्छी पुष्टि। मैं सूडो का बिल्कुल उपयोग नहीं कर रहा हूं। सुरक्षा मुझे कभी-कभी पागल बनाती है क्योंकि यह सही नहीं हो सकती है। –

0

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

आपको यह समझने की आवश्यकता है कि, आप मशीन पर सीधे पहुंच के साथ हमलावर के खिलाफ इतना कुछ नहीं कर सकते हैं। यदि यह डेटाबेस सर्वर स्वयं चला रहा है, तो कॉन्फ़िगरेशन फ़ाइलों को सुरक्षित करने पर अधिक प्रभाव नहीं होगा यदि वह डेटाबेस को स्वयं संशोधित कर सकता है। बस यह सुनिश्चित करें कि सब कुछ उतना सुरक्षित है जितना हो सकता है और आप शायद ठीक रहेगा।

2

यहाँ एक नि: शुल्क अपाचे मॉड्यूल है कि एक पासवर्ड की दुकान करने के लिए उपयोग का प्रबंधन करने में मदद करता है के लिए एक लिंक है:

http://uranus.it.swin.edu.au/~jn/linux/php/passwords.htm

यह थोड़ा मेरे लिए विस्तृत लगता है, और की आवश्यकता है आप mod_php तहत पीएचपी चलाते हैं। और फिर भी यह संभावना को संबोधित नहीं करता है कि अनधिकृत लोग जिनके पास सर्वर तक पहुंच है, वे सिर्फ आपकी पासवर्ड फ़ाइल पढ़ सकते हैं।

मुझे लगता है कि आपको फ़ाइल अनुमतियों पर भरोसा करना है, और भरोसा है कि अनधिकृत लोगों के पास आपके PHP अनुप्रयोग यूआईडी, या रूट पर sudo की क्षमता नहीं है।

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

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