Dodatek 5: Zvyšte zabezpečení své instalace XOOPS
Po instalaci XOOPS 2.7.0 proveďte následující kroky k posílení webu. Každý krok je volitelný samostatně, ale společně výrazně zvyšují základní bezpečnost instalace.
1. Nainstalujte a nakonfigurujte modul Protector
Sekce “1. Nainstalujte a nakonfigurujte modul Protector”Přiložený modul protector je firewall XOOPS. Pokud jste jej nenainstalovali během úvodního průvodce, nainstalujte jej nyní z obrazovky Správce → Moduly.

Otevřete panel správce aplikace Protector a prohlédněte si varování, která zobrazuje. Starší direktivy PHP, jako je register_globals, již neexistují (PHP 8.2+ je odstranil), takže tato varování již neuvidíte. Aktuální varování se obvykle týkají oprávnění k adresáři, nastavení relace a konfigurace důvěryhodné cesty.
2. Uzamkněte mainfile.php a secure.php
Sekce “2. Uzamkněte mainfile.php a secure.php”Po dokončení instalace se pokusí označit oba soubory jako pouze pro čtení, ale někteří hostitelé oprávnění vrátí. Ověřte a v případě potřeby znovu použijte:
mainfile.php→0444(vlastník, skupina, ostatní pouze pro čtení)xoops_data/data/secure.php→0444
mainfile.php definuje konstanty cesty (XOOPS_ROOT_PATH, XOOPS_PATH, XOOPS_VAR_PATH, XOOPS_URL, XOOPS_COOKIE_DOMAIN, ZX8QPHZ000) a výrobní příznaky. secure.php obsahuje přihlašovací údaje k databázi:
- Ve verzi 2.5.x jsou přihlašovací údaje k databázi používané v
mainfile.php. Nyní jsou uloženy vxoops_data/data/secure.php, který je načtenmainfile.phpza běhu. Uchovávánísecure.phpuvnitřxoops_data/– adresáře, který se doporučuje přemístit mimo kořen dokumentu – značně ztěžuje útočníkovi získat přihlašovací údaje přes HTTP.
3. Přesuňte xoops_lib/ a xoops_data/ mimo kořen dokumentu
Sekce “3. Přesuňte xoops_lib/ a xoops_data/ mimo kořen dokumentu”Pokud jste tak ještě neučinili, přesuňte tyto dva adresáře o jednu úroveň nad webový kořenový adresář a přejmenujte je. Poté aktualizujte odpovídající konstanty v 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);Umístění těchto adresářů mimo kořen dokumentu zabrání přímému přístupu ke stromu vendor/ Composer, šablonám uloženým v mezipaměti, souborům relací, nahraným datům a přihlašovacím údajům databáze v secure.php.
4. Konfigurace domény cookie
Sekce “4. Konfigurace domény cookie”XOOPS 2.7.0 zavádí dvě konstanty domény cookie v 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', '');Pokyny:
- Ponechejte
XOOPS_COOKIE_DOMAINprázdné, pokud obsluhujete XOOPS z jednoho názvu hostitele nebo z IP adresy. - Použijte úplný hostitel (např.
www.example.com) k rozsahu souborů cookie pouze pro tento název hostitele. – Použijte registrovatelnou doménu (např.example.com), pokud chcete soubory cookie sdílet meziwww.example.com,blog.example.comatd. XOOPS_COOKIE_DOMAIN_USE_PSL = trueumožňuje XOOPS správně rozdělit složené TLD (co.uk,com.au, …) namísto náhodného nastavení souboru cookie na efektivní TLD.
5. Výrobní příznaky v mainfile.php
Sekce “5. Výrobní příznaky v mainfile.php”mainfile.dist.php se dodává s těmito dvěma příznaky nastavenými na false pro výrobu:
define('XOOPS_DB_LEGACY_LOG', false); // disable legacy SQL usage loggingdefine('XOOPS_DEBUG', false); // disable debug noticesNechte je ve výrobě. Dočasně je povolte ve vývojovém nebo pracovním prostředí, když chcete:
- pátrat po přetrvávajících voláních starších databází (
XOOPS_DB_LEGACY_LOG = true); - povrchová oznámení
E_USER_DEPRECATEDa další výstup ladění (XOOPS_DEBUG = true).
6. Smažte instalační program
Sekce “6. Smažte instalační program”Po dokončení instalace:
- Odstraňte jakýkoli přejmenovaný adresář
install_remove_*z webového kořenového adresáře. - Odstraňte všechny skripty
install_cleanup_*.php, které průvodce vytvořil během čištění. - Ujistěte se, že adresář
install/již není dostupný přes HTTP.
Ponechání zakázaného, ale současného adresáře instalačního programu je málo závažné, ale lze se mu vyhnout.
7. Udržujte XOOPS a moduly aktuální
Sekce “7. Udržujte XOOPS a moduly aktuální”XOOPS dodržuje běžnou kadenci patchů. Přihlaste se k odběru repozitáře XOOPSCore27 GitHub pro oznámení o vydání a aktualizujte svůj web a všechny moduly třetích stran, kdykoli bude dodáno nové vydání. Aktualizace zabezpečení pro 2.7.x jsou publikovány na stránce Releases úložiště.