پیوست 5: امنیت نصب XOOPS خود را افزایش دهید
پس از نصب XOOPS 2.7.0 مراحل زیر را برای سخت شدن سایت انجام دهید. هر مرحله به صورت جداگانه اختیاری است، اما با هم امنیت پایه نصب را به میزان قابل توجهی افزایش می دهند.
1. ماژول Protector را نصب و پیکربندی کنید
Section titled “1. ماژول Protector را نصب و پیکربندی کنید”ماژول همراه protector فایروال XOOPS است. اگر در طول ویزارد اولیه آن را نصب نکردید، اکنون آن را از صفحه Admin → Modules نصب کنید.

پنل مدیریت Protector را باز کنید و هشدارهایی را که نمایش می دهد مرور کنید. دستورالعملهای قدیمی PHP مانند register_globals دیگر وجود ندارند (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، ZXQKEEP000016QXEPX0، و ZXQKEEP000016QXEPX0، و ZXQKEEP000016QXEPX0 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/ Composer، الگوهای ذخیره شده، فایل های جلسه، داده های آپلود شده و اعتبار پایگاه داده در 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 را از یک نام میزبان یا از یک IP سرویس می دهید،
XOOPS_COOKIE_DOMAINرا خالی بگذارید. - از میزبان کامل (به عنوان مثال
www.example.com) برای محدود کردن کوکیها به آن نام میزبان استفاده کنید. - هنگامی که می خواهید کوکی ها در بین
www.example.com،blog.example.comو غیره به اشتراک گذاشته شوند، از دامنه قابل ثبت (به عنوان مثالexample.com) استفاده کنید. XOOPS_COOKIE_DOMAIN_USE_PSL = trueبه XOOPS اجازه می دهد تا TLD های ترکیبی (co.uk،com.au، …) را به درستی تقسیم کند به جای اینکه تصادفاً یک کوکی روی TLD مؤثر تنظیم کند.
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 قابل دسترسی نیست.
ترک دایرکتوری نصب کننده غیرفعال اما موجود، خطری کم شدت اما قابل اجتناب است.
7. XOOPS و ماژول ها را به روز نگه دارید
Section titled “7. XOOPS و ماژول ها را به روز نگه دارید”XOOPS از یک پچ منظم پیروی می کند. برای اطلاعیه های انتشار در مخزن XoopsCore27 GitHub مشترک شوید و هر زمان که نسخه جدیدی ارسال شد، سایت خود و هر ماژول شخص ثالث را به روز کنید. بهروزرسانیهای امنیتی 2.7.x از طریق صفحه انتشارات مخزن منتشر میشوند.