x

मुख्य अध्याय

  1. LimeSurvey Cloud बनाम LimeSurvey CE
  2. क्विक स्टार्ट गाइड - LimeSurvey 3.0+
  3. इंस्टॉलेशन - LimeSurvey CE
  4. अच्छा सर्वेक्षण कैसे डिज़ाइन करें (गाइड)
  5. शुरू करना
  6. LimeSurvey का प्रशासन
  7. सर्वेक्षण - परिचय
  8. सर्वेक्षण सेटिंग्स
  9. सर्वेक्षण मेन्यू
  10. सर्वेक्षण की संरचना
  11. प्रश्न - परिचय
  12. प्रश्न समूह - परिचय
  13. सर्वेक्षण - प्रबंधन
  14. सर्वेक्षण टूलबार विकल्प
  15. बहुभाषी सर्वेक्षण
  16. ExpressionScript इंजन - त्वरित प्रारंभ गाइड
  17. अवर्गीकृत और उन्नत सुविधाएँ
  18. सामान्य अक्सर पूछे जाने वाले प्रश्न
  19. समस्या निवारण
  20. वर्कअराउंड
  21. लाइसेंस
  22. संस्करण परिवर्तन लॉग इन
  23. प्लगइन
 Actions

इंस्टॉलेशन सुरक्षा संबंधी सुझाव

From LimeSurvey Manual

इस पृष्ठ का अनुवाद मशीन द्वारा किया गया हो सकता है और इसमें त्रुटियाँ हो सकती हैं। मूल अंग्रेज़ी देखें · इस अनुवाद को बेहतर बनाएँ
This page is a translated version of the page Installation security hints and the translation is 100% complete.

सामान्य

कृपया ध्यान दें, हम सुरक्षा संबंधी मुद्दों को बहुत गंभीरता से लेते हैं और तुरंत कार्रवाई करते हैं। इसलिए, यदि आपको LimeSurvey में किसी सुरक्षा समस्या की जानकारी है, तो कृपया हमारे बग ट्रैकर में बग रिपोर्ट दर्ज करके हमें बताएँ (कृपया बग की गंभीरता या श्रेणी 'security' चुनें)।

सुरक्षा संबंधी मुद्दों/कमज़ोरियों की रिपोर्ट करने के बारे में अधिक विवरण के लिए कृपया हमारी सुरक्षा नीति देखें।

वेब सर्वर प्रतिबंध

यदि आप apache का उपयोग करते हैं, तो LimeSurvey प्रतिबंध के लिए अलग-अलग htaccess फ़ाइलें शामिल करता है। सुनिश्चित करें कि आपने AllowOverride के साथ शामिल htaccess फ़ाइलों की अनुमति दी है।

अन्य वेब सर्वर के साथ या यदि आप AllowOverride None का उपयोग करना चाहते हैं, तो आपको यह करना होगा:

  • (वैकल्पिक) application, protected, framework और themes/*/views में सभी फ़ाइलों तक पहुँच अक्षम करें
  • उपयोगकर्ता द्वारा अपलोड की गई फ़ाइलों /upload/surveys/.*/fu_[a-z0-9] तक पहुँच अक्षम करें
  • (वैकल्पिक) अपलोड डायरेक्टरी में निष्पादन योग्य फ़ाइलों तक पहुँच अक्षम करें

आप nginx का एक नमूना हमारे सामान्य FAQ में पा सकते हैं

Linux फ़ाइल अनुमतियाँ

यदि आप Linux सर्वर का उपयोग कर रहे हैं, तो अपने LimeSurvey इंस्टॉलेशन को सुरक्षित करने के लिए फ़ाइल अनुमतियाँ उचित रूप से सेट करना आवश्यक है।

Linux/*nix फ़ाइल अनुमतियों के बारे में बुनियादी तथ्य

Linux/*nix ऑपरेटिंग सिस्टम बहु-उपयोगकर्ता होता है। इसका मतलब है कि आपके व्यक्तिगत खाते के अलावा सिस्टम पर अन्य उपयोगकर्ता खाते भी मौजूद हो सकते हैं, और आपको ध्यान रखना चाहिए कि आप अन्य उपयोगकर्ताओं को कौन-सी अनुमतियाँ देते हैं।

सुझाव: पासवर्ड जैसे महत्वपूर्ण डेटा वाली कॉन्फ़िगरेशन फ़ाइलों को सुरक्षित करने के लिए फ़ाइल अनुमतियाँ सेट करना विशेष रूप से महत्वपूर्ण है।

ध्यान रखें कि 'root' खाते को आपकी फ़ाइलों तक पहुँचने की अनुमति हमेशा मिलेगी (चाहे आप कोई भी फ़ाइल अनुमतियाँ सेट करें), क्योंकि वह सुपर-एडमिन उपयोगकर्ता है।

वेब सर्वर (जो LimeSurvey चलाता है) भी किसी निश्चित पहचान (उपयोगकर्ता) के तहत चलता है। Linux पर यह आमतौर पर 'www', 'www-data' (Debian/Ubuntu पर), 'apache' या 'nobody' उपयोगकर्ता होता है। हालाँकि, कुछ होस्टिंग कंपनियाँ ऐसे सिस्टम (जैसे suexec) उपयोग करती हैं जो LimeSurvey स्क्रिप्ट को आपके व्यक्तिगत उपयोगकर्ता के साथ चलाना संभव बनाते हैं। बेशक, वेब सर्वर उपयोगकर्ता के पास LimeSurvey फ़ाइलें पढ़ने का अधिकार होना चाहिए। लेकिन LimeSurvey की केवल कुछ ही उप-डायरेक्टरी वेब सर्वर उपयोगकर्ता द्वारा लिखने योग्य होनी चाहिए।

सुझाव: LimeSurvey की जिन उप-डायरेक्टरी को लिखने की अनुमति की आवश्यकता नहीं है, उनके लिए वेब सर्वर उपयोगकर्ता की लिखने की अनुमति हटाना बहुत उपयोगी है। दरअसल, यदि LimeSurvey में कोई कमज़ोरी पाई भी जाती है, तब भी फ़ाइल सिस्टम अनुमतियों की बदौलत मुख्य फ़ाइलें अवैध संशोधन से सुरक्षित रहेंगी।

स्वयं-प्रबंधित Linux सिस्टम पर फ़ाइल अनुमतियाँ सेट करना

यदि आप अपने वेब सर्वर और ऑपरेटिंग सिस्टम कॉन्फ़िगरेशन का प्रबंधन स्वयं करते हैं (आप भौतिक सर्वर के मालिक हैं या ऐसा वर्चुअल सर्वर किराए पर ले रहे हैं जिस पर आपके पास root एक्सेस है), तो आप नीचे दी गई सिफ़ारिशों पर विचार कर सकते हैं।

आप सबसे पहले अपनी LimeSurvey फ़ाइलों का मालिक और समूह सेट कर सकते हैं, ताकि फ़ाइल अनुमतियों की सेटिंग आसान हो जाए। एक संभावित रणनीति यह है कि LimeSurvey फ़ाइलों का मालिक अपने व्यक्तिगत उपयोगकर्ता नाम को और LimeSurvey फ़ाइलों का समूह वेब सर्वर समूह को सेट करें। आमतौर पर इस वेब सर्वर समूह में केवल वेब सर्वर खाता (और संभवतः कोई अन्य वेबमास्टर खाता) होता है। उदाहरण के लिए, यदि आपका उपयोगकर्ता नाम 'myaccount' है और वेब सर्वर उपयोगकर्ता 'apache' समूह में 'apache' है, तो शेल एक्सेस से आप यह कमांड उपयोग कर सकते हैं: $ chown -R myaccount:apache limesurvey/। इसके बाद फ़ाइलों और उप-डायरेक्टरी की अनुमतियाँ सेट करें।

स्क्रिप्ट के ठीक से काम करने के लिए कुछ डायरेक्टरी में लिखने की पहुँच आवश्यक है:

  • एप्लिकेशन कॉन्फ़िगरेशन सेटिंग सहेजने के लिए /limesurvey/application/config डायरेक्टरी को Read & Write चाहिए
  • /limesurvey/tmp डायरेक्टरी और उसकी उप-डायरेक्टरी का उपयोग इम्पोर्ट/अपलोड के लिए होता है और इन्हें आपके वेब सर्वर के लिए Read & Write पर सेट किया जाना चाहिए
  • upload/ डायरेक्टरी और उसकी सभी उप-डायरेक्टरी को भी चित्र और मीडिया फ़ाइलें अपलोड करने में सक्षम बनाने के लिए Read & Write अनुमतियाँ दी जानी चाहिए
  • अन्य सभी डायरेक्टरी और फ़ाइलें Read Only पर सेट की जा सकती हैं

होस्टेड वेब सर्वर पर फ़ाइल अनुमतियाँ सेट करना

होस्टेड वातावरण में किसी वेब एप्लिकेशन को सुरक्षित करने की कोई मानक प्रक्रिया बनाना कठिन है, क्योंकि होस्टेड वातावरण कई मायनों में अलग-अलग होते हैं।

प्रबंधित सर्वर की स्थिति में, स्क्रिप्ट के ठीक से काम करने के लिए सर्वर को कुछ डायरेक्टरी में लिखने की पहुँच चाहिए:

  • /limesurvey/tmp डायरेक्टरी का उपयोग इम्पोर्ट/अपलोड के लिए होता है और इसे आपके वेब सर्वर के लिए Read & Write पर सेट किया जाना चाहिए
  • upload/ डायरेक्टरी और उसकी सभी उप-डायरेक्टरी को भी चित्र और मीडिया फ़ाइलें अपलोड करने में सक्षम बनाने के लिए आपके वेब सर्वर के लिए Read & Write चाहिए
  • अन्य डायरेक्टरी और फ़ाइलें Read Only पर सेट की जानी चाहिए
सुझाव:
  • आपके वेब सर्वर कॉन्फ़िगरेशन के आधार पर, लिखने योग्य फ़ोल्डरों को वेब सर्वर के लिए लिखने योग्य बनाने हेतु आपको उनके अधिकार chmod से 755 या 777 करने पड़ सकते हैं। पहले 755 आज़माएँ; यदि यह काम न करे, तो 777 पर 'अपग्रेड' करें
  • आप config.php की अनुमतियाँ 750 पर सेट करके अन्य उपयोगकर्ताओं की पढ़ने की पहुँच हटाने का भी प्रयास कर सकते हैं - यदि यह काम न करे, तो 755 पर 'अपग्रेड' करें

Windows फ़ाइल अनुमतियाँ

यदि आप Windows सर्वर का उपयोग कर रहे हैं, तो आपको सुनिश्चित करना चाहिए कि admin फ़ोल्डर वेब सर्वर प्रक्रिया के मालिक को इस डायरेक्टरी में फ़ाइलें लिखने की अनुमति देता है। शेष फ़ाइलें केवल-पढ़ने और निष्पादन (execute) पर सेट की जा सकती हैं।

अन्य सुरक्षा मुद्दे

निम्नलिखित केवल सिफ़ारिशें हैं। सामान्यतः LimeSurvey इन अतिरिक्त उपायों के बिना भी बहुत सुरक्षित है। हालाँकि, यदि आप अत्यंत संवेदनशील डेटा एकत्र करते हैं, तो थोड़ी अतिरिक्त सुरक्षा मददगार हो सकती है:

SSL का उपयोग

हम संवेदनशील सर्वेक्षण डेटा के लिए आमतौर पर SSL के उपयोग की सिफ़ारिश करते हैं। आप आमतौर पर अपने वेब सर्वर को सही ढंग से कॉन्फ़िगर करके और SSL प्रमाणपत्र का उपयोग करके SSL सक्षम करते हैं। यदि आपने SSL सक्षम किया है, तो आपको LimeSurvey की वैश्विक सेटिंग्स से हर समय SSL लागू करना चाहिए। इसके अतिरिक्त, आप config.php में संबंधित विकल्प को संपादित करके केवल 'secure' कुकीज़ का उपयोग करने के लिए सेट कर सकते हैं।

config.php फ़ाइल तक पहुँच

  आपको application/config/config.php को केवल पहली स्थापना पूरी होने और उसके ठीक से काम करने के बाद ही अपडेट करना चाहिए।


/application/config/config.php फ़ाइल में आपके डाटाबेस सर्वर के लिए उपयोगकर्ता का नाम और पासवर्ड होता है। इससे कुछ सुरक्षा संबंधी जोखिम उत्पन्न होते हैं, विशेष रूप से तब जब आप ऐसे लॉगिन का उपयोग कर रहे हों जिसके पास आपके डाटाबेस की उच्च-स्तरीय व्यवस्थापक पहुँच हो। यदि किसी त्रुटि के कारण इस PHP फ़ाइल की सामग्री उपयोगकर्ता के ब्राउज़र को लौटा दी जाए, तो आपका डाटाबेस पासवर्ड और अन्य विवरण असुरक्षित हो सकते हैं (हालाँकि, यह परिदृश्य बहुत ही असंभावित है)। जोखिम को कम करने का सबसे अच्छा तरीका एक ऐसा विशिष्ट लॉगिन बनाना है जिसके पास केवल आपके LimeSurvey डाटाबेस के लिए विशिष्ट अधिकार हों।

इस जानकारी को सुरक्षित रखने का एक और तरीका यह है कि /application/config/config.php फ़ाइल की जानकारी को किसी गैर-वेब डायरेक्टरी में रखा जाए, यानी Apache उपयोगकर्ताओं के लिए यह htdocs (जिसे public_html या www फ़ोल्डर भी कहा जाता है) के ऊपर की डायरेक्टरी है। मूल रूप से, आप config.php का उपयोग करेंगे, लेकिन उसमें केवल एक पंक्ति होगी - ऐसी पंक्ति जो वास्तविक कॉन्फ़िगरेशन जानकारी वाली फ़ाइल को शामिल करती है (उदाहरण: <?php return include("/home/hostfolder/safedata/configreal.php"); ?>)। /application/config/config.php से सारी वास्तविक कॉन्फ़िगरेशन जानकारी हटाएँ और उसे दूसरी फ़ाइल (configreal.php) में पेस्ट करें, जिसका उल्लेख /application/config/config.php फ़ाइल में है। यह दूसरी फ़ाइल किसी गैर-वेब डायरेक्टरी में स्थित होनी चाहिए। तब /application/config/config.php में डाटाबेस पासवर्ड आदि नहीं होंगे - केवल उस फ़ाइल का नाम होगा जिसमें डाटाबेस की जानकारी होती है।

इससे उन सभी अन्य फ़ाइलों को बदलने की आवश्यकता नहीं पड़ती जो /application/config/config.php को शामिल करती हैं, क्योंकि config.php उन्हें उस कॉन्फ़िगरेशन फ़ाइल की ओर 'पुनर्निर्देशित' कर देती है जो किसी गैर-वेब डायरेक्टरी में स्थित है और जिसमें सारी वास्तविक कॉन्फ़िगरेशन जानकारी होती है।

साथ ही, डिफ़ॉल्ट उपयोगकर्ता के रूप में "admin" या "administrator" का उपयोग न करें। अपने MySQL डाटाबेस (या उस डाटाबेस) में जाएँ जिसमें आपने LimeSurvey स्थापित किया है और डिफ़ॉल्ट उपयोगकर्ता का नाम "admin" अपनी पसंद के किसी भी नाम (जैसे "admin_xyz") में बदल दें। अब व्यवस्थापक के नए उपयोगकर्ता नाम का अनुमान लगाना बहुत कठिन होगा। याद रखें, यह उन दो चरों में से एक है जिनका उपयोग घुसपैठिए पहुँच प्राप्त करने के लिए कर सकते हैं। व्यवस्थापक का पासवर्ड दूसरा चर है। इसलिए दोनों को अत्यंत सावधानी से चुनें।

कंटेंट सिक्योरिटी पॉलिसी (CSP)

अस्वीकरण - यहाँ दी गई CSP केवल एक उदाहरण है और इसे जस का तस उपयोग करने के लिए नहीं है। यह केवल एक प्रारंभिक बिंदु है और आपको इसे अपनी आवश्यकताओं के अनुसार अनुकूलित करना ज़रूरी है तथा इसका पूरी तरह परीक्षण करना चाहिए।

<IfModule mod_headers.c>
        Header always set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; base-uri 'none'; form-action 'self'; frame-ancestors 'self'; upgrade-insecure-requests" "expr=%{CONTENT_TYPE} =~ m#text\/(html|javascript)|application\/pdf|xml#i"
</IfModule>