इसे छोड़कर कंटेंट पर जाएं

परिशिष्ट 5: अपने XOOPS इंस्टॉलेशन की सुरक्षा बढ़ाएँ

XOOPS 2.7.0 स्थापित करने के बाद, साइट को सख्त करने के लिए निम्नलिखित कदम उठाएँ। प्रत्येक चरण व्यक्तिगत रूप से वैकल्पिक है, लेकिन साथ में वे इंस्टॉल की आधारभूत सुरक्षा को महत्वपूर्ण रूप से बढ़ाते हैं।

1. प्रोटेक्टर मॉड्यूल को स्थापित और कॉन्फ़िगर करें

Section titled “1. प्रोटेक्टर मॉड्यूल को स्थापित और कॉन्फ़िगर करें”

बंडल किया गया protector मॉड्यूल XOOPS फ़ायरवॉल है। यदि आपने इसे प्रारंभिक विज़ार्ड के दौरान इंस्टॉल नहीं किया है, तो इसे अब एडमिन → मॉड्यूल स्क्रीन से इंस्टॉल करें।

![]/xoops-docs/2.7/img/installation/img_73.jpg)

प्रोटेक्टर का व्यवस्थापक पैनल खोलें और उसमें प्रदर्शित चेतावनियों की समीक्षा करें। register_globals जैसे लीगेसी PHP निर्देश अब मौजूद नहीं हैं (PHP 8.2+ ने उन्हें हटा दिया है), इसलिए अब आप उन चेतावनियों को नहीं देख पाएंगे। वर्तमान चेतावनियाँ आमतौर पर निर्देशिका अनुमतियों, सत्र सेटिंग्स और ट्रस्ट-पथ कॉन्फ़िगरेशन से संबंधित होती हैं।

2. लॉक डाउन mainfile.php और secure.php

Section titled “2. लॉक डाउन mainfile.php और secure.php”

जब इंस्टॉलर समाप्त हो जाता है तो यह दोनों फ़ाइलों को केवल पढ़ने के लिए चिह्नित करने का प्रयास करता है, लेकिन कुछ होस्ट अनुमतियाँ वापस कर देते हैं। यदि आवश्यक हो तो सत्यापित करें और पुनः आवेदन करें:

  • mainfile.php0444 (स्वामी, समूह, अन्य केवल पढ़ने के लिए)
  • xoops_data/data/secure.php0444

mainfile.php पथ स्थिरांक (XOOPS_ROOT_PATH, XOOPS_PATH, XOOPS_VAR_PATH, XOOPS_URL, XOOPS_COOKIE_DOMAIN, XOOPS_COOKIE_DOMAIN_USE_PSL) और उत्पादन झंडे को परिभाषित करता है। secure.php डेटाबेस क्रेडेंशियल रखता है:

  • 2.5.x में, डेटाबेस क्रेडेंशियल mainfile.php में रहते थे। वे अब xoops_data/data/secure.php में संग्रहीत हैं, जिसे रनटाइम पर mainfile.php द्वारा लोड किया जाता है। secure.php को xoops_data/ के अंदर रखने से - एक निर्देशिका जिसे आपको दस्तावेज़ रूट के बाहर स्थानांतरित करने के लिए प्रोत्साहित किया जाता है - एक हमलावर के लिए HTTP से अधिक क्रेडेंशियल तक पहुंचना बहुत कठिन हो जाता है।

3. दस्तावेज़ रूट के बाहर xoops_lib/ और xoops_data/ ले जाएँ

Section titled “3. दस्तावेज़ रूट के बाहर xoops_lib/ और xoops_data/ ले जाएँ”

यदि आपने पहले से ऐसा नहीं किया है, तो इन दोनों निर्देशिकाओं को अपने वेब रूट से एक स्तर ऊपर ले जाएँ और उनका नाम बदलें। फिर संबंधित स्थिरांक को mainfile.php में अपडेट करें:

define('XOOPS_ROOT_PATH', '/home/you/www');
define('XOOPS_PATH', '/home/you/zubra_mylib');
define('XOOPS_VAR_PATH', '/home/you/zubra_mydata');
define('XOOPS_TRUST_PATH', XOOPS_PATH);

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

4. कुकी डोमेन कॉन्फ़िगरेशन

Section titled “4. कुकी डोमेन कॉन्फ़िगरेशन”

XOOPS 2.7.0 mainfile.php में दो कुकी-डोमेन स्थिरांक प्रस्तुत करता है:

// Use the Public Suffix List (PSL) to derive the registrable domain.
define('XOOPS_COOKIE_DOMAIN_USE_PSL', true);
// Explicit cookie domain; may be blank, the full host, or the registrable domain.
define('XOOPS_COOKIE_DOMAIN', '');

दिशानिर्देश:

  • यदि आप एकल होस्टनाम या आईपी से XOOPS की सेवा करते हैं तो XOOPS_COOKIE_DOMAIN को खाली छोड़ दें।
  • केवल उस होस्टनाम तक कुकीज़ का दायरा बढ़ाने के लिए पूर्ण होस्ट (जैसे www.example.com) का उपयोग करें।
  • जब आप कुकीज़ को www.example.com, blog.example.com, आदि पर साझा करना चाहते हैं तो पंजीकरण योग्य डोमेन (जैसे example.com) का उपयोग करें।
  • XOOPS_COOKIE_DOMAIN_USE_PSL = true XOOPS को प्रभावी टीएलडी पर गलती से कुकी सेट करने के बजाय यौगिक टीएलडी (co.uk, com.au, …) को सही ढंग से विभाजित करने देता है।

5. mainfile.php में उत्पादन झंडे

Section titled “5. mainfile.php में उत्पादन झंडे”

mainfile.dist.php इन दो झंडों वाले जहाज उत्पादन के लिए false पर सेट हैं:

define('XOOPS_DB_LEGACY_LOG', false); // disable legacy SQL usage logging
define('XOOPS_DEBUG', false); // disable debug notices

उन्हें उत्पादन पर छोड़ दें. जब आप चाहें तो उन्हें विकास या स्टेजिंग परिवेश में अस्थायी रूप से सक्षम करें:

  • लंबे समय से चली आ रही विरासती डेटाबेस कॉल्स का पता लगाएं (XOOPS_DB_LEGACY_LOG = true);
  • सतह E_USER_DEPRECATED नोटिस और अन्य डिबग आउटपुट (XOOPS_DEBUG = true)।

6. इंस्टॉलर हटाएं

Section titled “6. इंस्टॉलर हटाएं”

इंस्टालेशन पूर्ण होने के बाद:

  1. वेब रूट से किसी भी नामित install_remove_* निर्देशिका को हटा दें।
  2. विज़ार्ड द्वारा सफ़ाई के दौरान बनाई गई किसी भी install_cleanup_*.php स्क्रिप्ट को हटा दें।
  3. पुष्टि करें कि install/ निर्देशिका अब HTTP पर पहुंच योग्य नहीं है।

एक अक्षम लेकिन वर्तमान इंस्टॉलर निर्देशिका को छोड़ना कम गंभीरता वाला लेकिन टालने योग्य जोखिम है।

7. XOOPS और मॉड्यूल को अद्यतन रखेंXOOPS नियमित पैच ताल का अनुसरण करता है। रिलीज़ सूचनाओं के लिए XoopsCore27 GitHub रिपॉजिटरी की सदस्यता लें, और जब भी कोई नई रिलीज़ शिप हो तो अपनी साइट और किसी भी तीसरे पक्ष के मॉड्यूल को अपडेट करें। 2.7.x के लिए सुरक्षा अद्यतन रिपॉजिटरी के रिलीज़ पृष्ठ के माध्यम से प्रकाशित किए जाते हैं।

Section titled “7. XOOPS और मॉड्यूल को अद्यतन रखेंXOOPS नियमित पैच ताल का अनुसरण करता है। रिलीज़ सूचनाओं के लिए XoopsCore27 GitHub रिपॉजिटरी की सदस्यता लें, और जब भी कोई नई रिलीज़ शिप हो तो अपनी साइट और किसी भी तीसरे पक्ष के मॉड्यूल को अपडेट करें। 2.7.x के लिए सुरक्षा अद्यतन रिपॉजिटरी के रिलीज़ पृष्ठ के माध्यम से प्रकाशित किए जाते हैं।”