परिशिष्ट 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.php→0444(स्वामी, समूह, अन्य केवल पढ़ने के लिए)xoops_data/data/secure.php→0444
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 = trueXOOPS को प्रभावी टीएलडी पर गलती से कुकी सेट करने के बजाय यौगिक टीएलडी (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 loggingdefine('XOOPS_DEBUG', false); // disable debug noticesउन्हें उत्पादन पर छोड़ दें. जब आप चाहें तो उन्हें विकास या स्टेजिंग परिवेश में अस्थायी रूप से सक्षम करें:
- लंबे समय से चली आ रही विरासती डेटाबेस कॉल्स का पता लगाएं (
XOOPS_DB_LEGACY_LOG = true); - सतह
E_USER_DEPRECATEDनोटिस और अन्य डिबग आउटपुट (XOOPS_DEBUG = true)।
6. इंस्टॉलर हटाएं
Section titled “6. इंस्टॉलर हटाएं”इंस्टालेशन पूर्ण होने के बाद:
- वेब रूट से किसी भी नामित
install_remove_*निर्देशिका को हटा दें। - विज़ार्ड द्वारा सफ़ाई के दौरान बनाई गई किसी भी
install_cleanup_*.phpस्क्रिप्ट को हटा दें। - पुष्टि करें कि
install/निर्देशिका अब HTTP पर पहुंच योग्य नहीं है।
एक अक्षम लेकिन वर्तमान इंस्टॉलर निर्देशिका को छोड़ना कम गंभीरता वाला लेकिन टालने योग्य जोखिम है।