Adminer 5.0.6
Vyšel Adminer 5.0.6, který přináší tyto změny:
- Možná trochu kontroverzní bude změna v zarovnávání čísel. Adminer Editor je odjakživa zarovnává doprava, Adminer je dával doleva. Ale zarovnání doprava je čitelnější, tak jsem to změnil i v Admineru (bug #912).
- Pokud na sloupec v editaci najedete myší, zobrazí se jeho typ. Teď jsem tam přidal i komentář, na což dřív byl potřeba plugin.
- Při exportu z SQL příkazu se nezapamatovalo jeho nastavení, takže ho bylo příště potřeba vybírat znovu. Nyní jsem ho synchronizoval s nastavením exportu ve výpisu dat.
- Formulář s SQL příkazem Adminer pochopitelně odesílá metodou POST, ale JavaScriptem se ukládá i do URL, aby byl snadno k dispozici v historii prohlížeče. Tam se ukládal, jen pokud byl kratší než 2000 znaků, to ale pro některé servery bylo moc. Proto jsem to zkrátil na 500 (bug #917).
- V SQL příkazu lze pomocí
Ctrl+klik
na klíčová slova otevřít jejich dokumentaci. - Opravil jsem i jednu bezpečnostní chybu, ve většině případů ale asi ne moc dobře zneužitelnou. Adminer si vytváří nějaké soubory v dočasném adresáři. Pokud do něj mají přístup i další uživatelé serveru (běžné např. na školách), tak můžou pod názvem souboru používaným Adminerem vytvořit symlink vedoucí na jiný soubor uživatele, pod kterým Adminer běží. Adminer pak přepíše tento soubor svými daty. Jednak v dnešní době virtuálních serverů nebývá zvykem, aby se o jeden server dělilo více uživatelů. Jednak webový server obvykle běží pod vyhrazeným uživatelem, který žádná práva zápisu kromě dočasných souborů nemá. I tak jsem chybu ale opravil. Jedno použití dočasných souborů je při kontrole nové verze – tam se soubor nejprve prostě smaže. V ostatních případech se nově kontroluje, jestli to není symlink. Do dočasného souboru se ukládají i počty neúspěšných pokusů o přihlášení jako obrana proti brute-force útokům. Pokud by někdo vytvořil symlink
adminer.invalid
, tak by tuto kontrolu vypnul. Adminer proto v takovém případě zkusí použít soubor s náhodnou koncovkou (bug #855). - V přihlašovacím formuláři se nově zobrazuje „MySQL / MariaDB“, aby uživatelům MariaDB bylo jasné, že to můžou použít. Po přihlášení se to změní buď na MySQL nebo na MariaDB. Stejnou změnu jsem mohl udělat i pro CockroachDB, ale text „PostgreSQL / CockroachDB“ byl prostě příliš dlouhý. Vzhledem k nižší známosti této databáze jsem nechal jen PostgreSQL, i když Adminer s CockroachDB plnohodnotně funguje.
- Přidal jsem tmavý styl pro zvýrazňování syntaxe. Ten se zapíná podle nastavení operačního systému nebo pro tmavé vzhledy.
- V tmavém vzhledu jsou nově tmavá i formulářová políčka. Měl jsem za to, že by to operační systém měl dělat automaticky, ale je potřeba mu to říct pomocí
color-scheme
. - Jak už jsem popisoval, Adminer nyní hledá vzhled i v souboru
adminer-dark.css
. Pro pluginy jsem přidal metodu
syntaxHighlighting
, kterou lze změnit zvýrazňování syntaxe z výchozího JUSH. Použil jsem ji v novém pluginu CodeMirror, který zvýrazňování syntaxe včetně editace SQL příkazu přepne na CodeMirror. Adminer je zdá se navržen celkem dobře, protože tato změna si vyžádala jen minimální zásahy do zdrojáku. Killer feature CodeMirroru je napovídání klíčových slov, tabulek a sloupců. Časem chci tuto funkci dodělat i do JUSH.
Všechny autory pluginů jsem také obeslal pull requesty s doplněním jmenného prostoru. Většina už tuto změnu přijala, takže by pluginy měly jít přímo používat i v Admineru 5.
Funkci phpSrink
jsem vyčlenil do samostatného repozitáře. Udělal jsem k tomu i demo, které díky Php-Wasm běží v prohlížeči uživatele. O tom zase někdy příště.
Na web jsem přidal stránku se seznamem útoků, proti kterým se Adminer explicitně brání.
Diskuse
Miro:
Vdaka za vybornu pracu Jakub. Tesim sa na kazdy novy update a kazdu novu funkctionalitu. Pouzivam adminer uz ~15 rokov a som rad, ze chytil druhy dych.David Dvorak:
Ahoj Jakube, pouzivam novou verzi pres adminer, zkousel jsem CodeMirror a v kodu chyby js a css soubory. Defaultne je to hleda v /codemirror5/ slozce a ta tam neni. Vraci mi to HTML prihlasovaci obrazovky. Jinak pecka!
Jakub Vrána
:
Díky. To si musíš stáhnout zvlášť z https://codemirror.net/5/codemirror.zip.


Vložit komentář

