Národní úřad pro kybernetickou a informační bezpečnost vydal varování před kybernetickými hrozbami cílenými zejména na české...
Šifrované spojení k databázi v Admineru
Adminer je nástroj pro správu databáze od českého autora Jakuba Vrány. Jedná se o značně vylepšenou a přitom zjednodušenou náhradu za populární phpMyAdmin. Adminer ale ve výchozím stavu neumí sám o sobě šifrované spojení k databázi. Nicméně není problém ho to naučit 🙂
Instalace rozšíření pro Adminer
Adminer má mnoho oficiálních rozšíření (pluginů), ale kdykoliv si může napsat i své vlastní. Aby rozšíření fungovaly, je potřeba vytvořit nový php soubor, který budeme otvírat a ve kterém budou definovaná rozšíření Admineru včetně samotného Admineru.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <?php function adminer_object() { // required to run any plugin include_once "./plugins/plugin.php"; // autoloader foreach (glob("plugins/*.php") as $filename) { include_once "./$filename"; } $plugins = array( // specify enabled plugins here new AdminerDumpXml, ); /* It is possible to combine customization and plugins: class AdminerCustomization extends AdminerPlugin { } return new AdminerCustomization($plugins); */ return new AdminerPlugin($plugins); } // include original Adminer or Adminer Editor include "./adminer.php"; ?> |
Výše uvedený kód uložíme například do souboru index.php. Do stejného adresáře uložíme i soubor adminer.php se samotným Adminerem. Dále vytvoříme složku plugins, do které nahrajeme rozšíření, která chceme používat. U každého rozšíření si musíme zjistit název třídy, kterou dané rozšíření definuje, což je hned na začátku zdrojového kódu každého rozšíření. Takže například rozšíření dump-xml.php vytváří novou třídu AdminerDumpXml, jejíž název zadáme pole načítaných pluginů ve zdrojovém kódu výše. Samotný php soubor daného pluginu nahrajeme do adresáře plugins. Do tohoto adresáře musíme také uložit výchozí soubor plugin.php, který je nutný pro načtení jakéhokoliv pluginu.
V kořenovém adresáři bude tedy soubor index.php se zdrojovým kódem výše, výchozí adminer.php se zdrojovým kódem samotného Admineru a adresář plugins. V adresáři plugins bude soubor plugin.php, který je nutný obecně pro všechny pluginy, a dále php soubory jednotlivých pluginů.
Rozšíření login-ssl v Admineru pro šifrované spojení k databázi
Nyní již víme, jak obecně pracovat s rozšířeními pro Adminer, takže se můžeme podívat na samotné šifrované spojení do databáze. Aby šifrované spojení do databáze v Admineru fungovalo, je potřeba nainstalovat rozšíření login-ssl a toto rozšíření nainstalovat dle postupu výše.
U tohoto rozšíření je potřeba ale ještě nainstalovat certifikát autority, která vydala certifikát použitý pro šifrování komunikace s databází. Tento certifikát se pak předá včetně cesty jako argument rozšíření login-ssl. Celý kód souboru index.php s certifikátem uloženým v souboru cert.pem ve složce plugins by tedy mohl vypadat například takto.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <?php function adminer_object() { // required to run any plugin include_once "./plugins/plugin.php"; // autoloader foreach (glob("plugins/*.php") as $filename) { include_once "./$filename"; } $plugins = array( // specify enabled plugins here new AdminerLoginSsl("plugins/cert.pem"), ); /* It is possible to combine customization and plugins: class AdminerCustomization extends AdminerPlugin { } return new AdminerCustomization($plugins); */ return new AdminerPlugin($plugins); } // include original Adminer or Adminer Editor include "./adminer.php"; ?> |