Bezpečnost a připojení databáze

Datum 31. 05. 2008 v 15:20 | Rubrika: Zápisník pojídačky koláčů pro Xoops

Lidové jsou různé, říká můj otécko a je to fakt. Bohužel se mezi lidmi najde docela dost podivných individuí jejichž zábavou je napadat cizí systémy či weby a pak tam řádit jako černá ruka. Nebo bych to, v zájmu politické korektnosti, měla napsat jinak?

Ať už je ta ruka barevná jak chce, je vždy dobré jí to řádění ztížit. Ačkoli to někdy znamená i otravování nevinných lidí.

Následující jednoduchý návod je však ukázka toho, že řádění se dá ztížit a slušné lidi neotravovat.
V kmenovém adresáři Xoopsu se nachází soubor mainfile.php. Ten obsahuje základní nastavení celého systému, mimo jiné i přihlašovací údaje k databázi. Pokud se někomu podaří se k tomuto souboru dostat, může si pak s databází dělat co chce, což jistě není dobře. Citlivé údaje se ale dají vložit i jinam. Není to sice zabezpečení na 100%, ale lepší něco, než nic.

Nejprve je potřeba vytvořit textový soubor, který lze libovolně pojmenovat. Jen je potřeba, aby přípona tohoto souboru byla PHP. Obsah souboru je následující:


< ?php
// Udaje pro pripojeni DB
$db_u = "uživatelské jméno";
$db_h = "heslo k databázi";
$db_j = "jméno databáze";
$db_p = "prefix tabulek"
?>


Mezi symbolem < a ? nemá být mezera. Ochranný systém Xoopsu mi ale nedovolí vložit to do článku správně.

V souboru mainfile.php je potom potřeba udělat následující změny. Není jich moc, ale je potřeba dávat pozor co se dělá a proč se to dělá. Tento soubor je pro Xoopsu životně důležitý a nesmí se v něm nic poškodit.

Doplnit červené řádky:

// XOOPS Virtual Path (URL)
// Virtual path to your main XOOPS directory WITHOUT trailing slash
// Example: define('XOOPS_URL', 'http://www.zirafoviny.cz');

define('XOOPS_URL', 'http://www.zirafoviny.cz');

define('XOOPS_TRUST_PATH',XOOPS_ROOT_PATH.'/bezpeci');
include ("/cesta ke xoopsu/bezpeci/soubor.php");

define('XOOPS_CHECK_PATH', 1);

A v dalších řádcích přepsat hodnoty:

define('XOOPS_DB_PREFIX', ‘xxx’); -> define('XOOPS_DB_PREFIX', $db_p);

define('XOOPS_DB_USER', ‘xxx‘); -> define('XOOPS_DB_USER', $db_u);

define('XOOPS_DB_PASS', ‘xxx‘); -> define('XOOPS_DB_PASS', $db_h);

define('XOOPS_DB_NAME', ‘xxx‘); -> define('XOOPS_DB_NAME', $db_j);


Cesta k souboru s údaji musí být napsaná přesně a bez chyb. V případě libovolné chyby nebude Xoops vůbec fungovat a místo stránek se bude zobrazovat jen informace o nedostupnosti databáze.

První červený řádek není vlastně ani nutné vkládat, ale některé moduly jej vyžadují a tak je dobré jej vložit. Dříve nebo později by k tomu stejně došlo. Názvy proměnných lze libovolně změnit. Jen je potřeba dodržet logiku psaní v PHP.

Tím je vlastně skoro všechno hotové. Zbývá jen překopírovat upravený soubor na server a nastavit mu atributy tak, aby se dal jen číst. Pro servery se systémem Windows je to „Read-only“ a pro systémy na bázi Linuxu „444“. Pokud tak neučiníte, při první, a každé další, návštěvě administrativní části to dá Xoops zřetelně najevo a nedá pokoj, dokud atributy nebudou dobře nastavené.

Touto úpravou se zvýší bezpečnost systému, ale pro normální návštěvníky se nic nezmění. Ti změnu vůbec nezaregistrují a tak to má být.

Tento návod je určený pouze lidem, kteří vědí co dělají. Pokud si nejste jisti, raději se do úprav systému nepouštějte. Poškozením souboru mainfile.php lze napáchat více škody, než užitku. Proto je potřeba dávat pozor.

Již pan Uljanov říkával „Zálohovat, zálohovat, zálohovat“

txt



Článek pochází z webu Žirafoviny.cz
https://www.zirafoviny.cz

URL tohoto článku je:
https://www.zirafoviny.cz/modules/news/article.php?storyid=13