phpMyAdmin 6.0.0-dev
Po letech jsem se podíval, jak pokročil phpMyAdmin a je to snad ještě větší utrpení, než původně:
- Přivítá mě hláškou o chybějícím rozšíření Sodium. Když na odkaz Sodium kliknu, dostanu úplně tu stejnou chybovou hlášku, jen na jiném URL.
- Do SQL příkazu vložím export databáze včetně
SET foreign_key_checks = 0a skončí chybou. Musím ještě odškrtnout jejich Enable foreign key checks. - Když se import konečně provede, tabulky v menu nejsou aktualizované.
- Kliknu na obnovit menu a celé menu poskočí tam a zpátky. To se mimochodem děje při načítání jakékoliv stránky. Vyrenderuje se o nějakých 50 pixelů vlevo a pak poskočí na správné místo.
- Chci vytvořit tabulku – použiji odkaz v menu, který vygeneruje 4 sloupce. Pro přidání dalšího musím kliknout na tlačítko, které skončí chybou Error code: 200. Error text: OK (rejected). Tabulku s více sloupci tedy můžu vytvořit jedině tak, že počet sloupců zadám předem v jiném formuláři.
- Double-clickem chci označit slovo ve výpisu, místo toho se začne editovat. Říkám si: „OK, rozbili mnou velmi často používané gesto pro označování po celých slovech, ale aspoň mají inline editaci.“ Změním hodnotu a kliknu vedle, abych změnil další. První změněná se bez jakéhokoliv mého potvrzení uloží a její editace zmizí. V Admineru můžu atomicky změnit víc hodnot najednou, klidně i v různých řádcích.
- Ve výpisu zaškrtnu řádek a dám ho editovat. V prohlížeči se chci vrátit o stránku zpátky a nehodí mě to zpátky na výpis, ale na stránku, kde jsem byl předtím.
Kdykoliv to po letech spustím, tak během pěti minut narazím na dlouhý seznam závažných chyb. A to se ani nesnažím chodit do nějakých hlubokých zákoutí, dělám naprosto běžné věci.
První načtení phpMyAdminu stáhne 70× víc dat než první načtení Admineru a každá další stránka 7× víc. Rychlost s tím jde ruku v ruce.
Další věc jsou 17 let staré bezpečnostní praktiky:
- Skrytí celého dokumentu a jeho zobrazení až JavaScriptem, pokud nejsem uvnitř rámu. Hlavičku
X-Frame-Optionsprohlížeče podporují od roku 2010. - Není důvod vnější odkazy přesměrovávat přes vlastní stránku, která referrer odstraní JavaScriptem. To je příčina té první chyby, na kterou jsem narazil. Atribut
<a rel="noreferrer">prohlížeče podporují od roku 2014. - Tajemství k 2FA je uložené přímo v databázi, ke které by mělo chránit přístup.
„Výhoda“ phpMyAdminu je naprosto přeplácané uživatelské rozhraní. Např. phpMyAdmin má u každého řádku odkaz Smazat, na který můžu kliknout omylem a dialog bezmyšlenkovitě potvrdit. V Admineru musím řádek vybrat a tlačítkem jinde ho smazat. To je lepší nejen UI, ale i UX. Uživatelé mají pocit, že tam je strašně moc funkcí, přitom i celkem základní chybí (např. hromadné nastavení stejné hodnoty u více řádek).
Další „výhoda“ je nabubřelá instalace – 77 MB v 4891 souborech prostě nikdo ručně kopírovat nebude. Hostingy proto dávají phpMyAdmin předinstalovaný.

