Adminer 4.6.3

Školení, která pořádám

Nejdůležitější změnou v Admineru 4.6.3 je zakázání příkazu LOAD DATA LOCAL INFILE v MySQL. S jeho pomocí jde totiž načíst obsah libovolného souboru, ke kterému má přístup uživatel, pod kterým běží webový server.

Podobně zásadní změnou je zákaz používání databází bez hesla. Už v minulosti jsem zakázal přístup bez hesla k SQLite, teď to platí pro všechny databáze. Chápu, že třeba na vývojových serverech nepřístupných zvenčí to může být trochu opruz, ale detekce toho, zda jde o vývojový server, by byla nespolehlivá (např. za reverzní proxy), proto jsem to zakázal všude. Máte tři možnosti, jak se s tímto omezením vypořádat.

Další změny jsou drobnější:

Jakub Vrána, Adminer, 28.6.2018, diskuse: 15 (nové: 0)

Diskuse

Salko:

Zdravím, už dve verzie pozorujem jednu vec, len som to zabudol nareportovať.
Úprava indexov, chcem pridať tri nové indexy, ale umožňuje mi to pridať iba dva. Pri výbere druhého sa už nezobrazí nový radok s indexom.

ikona Jakub Vrána OpenID:

Díky za upozornění, opravil jsem to.

Salko:

Veľká vďaka, dobrá práca.

PeTaX:

Pro MySQL lamy (jako jsem já). Když se vydáte tou nejsnazší cestou, tedy si databázi zaheslujete, buď přímo v tabulce, nebo příkazem:
UPDATE `user` SET `password` = PASSWORD('YOUR_PASS') WHERE `user` = 'root';
musíte také novou kofiguraci MySQL načíst do paměti:
FLUSH PRIVILEGES;
Jinak Vám Adminer (ani jiná aplikace) zadané heslo nepřijme.

ikona Jakub Vrána OpenID:

Lepší je použít příkaz https://dev.mysql.com/doc/mysql/en/set-password.html.

Pavel Kravčík:

Nepříjemná změna, pokud se týká více projektů lokálně. Můžeš vyřešit i locku na nižší verzi.

ikona Jakub Vrána OpenID:

Vzhledem k tomu, že tato verze opravuje i celkem vážnou bezpečnostní chybu (lokální čtení souborů), tak to je to poslední řešení, které bych doporučil.

Lofas:

Souhlasím, pro mne je taky verze 4.6.2 konečná, protože nehodlám na X desítkách míst zbytečně nastavovat heslo, když to není potřeba. Takhle stačila úprava stahovacího skriptu a zafixování na konkrétní verzi a je hotovo. :)

ikona Jakub Vrána OpenID:

Zhruba stejně pracné by bylo použít plugin, které přihlášení bez hesla zase povolí.

Lofas:

To by rozhodně nebylo, protože bych minimálně musel zjistit, jak se vůbec nějaký plugin do Admineru instaluje, protože jsem to za celou dobu jeho používání nepotřeboval. A opravdu se mi nelíbí, když za mě někdo rozhoduje, co je pro moji bezpečnost lepší. Takže takováhle snaha je vlastně kontraproduktivní, protože místo dosažení nějaké pseudobezpečnosti se teď bude nacházet spousta neaktualizovaných instalací Admineru, které není možné aktualizovat. Nevím která varianta je lepší.

ikona Jakub Vrána OpenID:

Odpověď je úplně jednoduchá, lepší je tomu jednorázově obětovat 5 minut a aktualizovat. Za dobu téhle nesmyslné diskuze už jsi to mohl mít hotové.

Jako autor Admineru mám spoluzodpovědnost za to, jak se používá. Až někomu vykradou databázi proto, že někde nechal válet Adminer a databázi měl bez hesla, bude to samozřejmě primárně vina toho člověka, ale částečně taky moje, protože můj nástroj to umožnil. A vzhledem k tomu, že prioritou č. 1 při vývoji Admineru je bezpečnost (viz https://www.adminer.org/), tak je volba jasná. Já mám teď aspoň čisté svědomí.

Pavel Kravčík:

Ono je to nemilé, když už člověk používá nějaký připravený balíček, kde už je pevný soupis rozšíření, který se tahá pomocí composeru. Musel bych vytvořit fork, upravit, vydat na packagist a tak to dělat pro každou verzi. Nebo si napsat rozšíření na rozšíření. Takže pro lokální vývoj je neefektivnější lockout starou verzi.

Důvody změny však chápu.

Hobitt:

Lofasi, co je to za komentář? On tě někdo nutí používat tento program? Zrovna tak jak si ty myslíš, že za tebe někdo rozhoduje, co je pro bezpečnost lepší, tak je to spíše obráceně, protože používáš program, který vytvořil někdo jiný, neplatíš za něj, autor se o ten program stará (a to velmi dobře na rozdíl od jiných) a ty si ještě dovoluješ mu říkat co je pro JEHO program lepší?

Jestli se ti to nelíbí tak ho nepoužívej a zaplať si jiný program, nebo programátora, který ti napíše tvůj vlastní a pak mu můžeš vyčítat co chceš.

Ale výčítat autorovi, že opravil bezpečnostní chybu ve svém programu, který dává k použití všem zdarma je fakt už přes čáru.

Já nevím, ale pozoruji to už delší dobu v diskuzích. Spousta lidí si myslí, že všecno co je na internetu je jejich a může nadávat autorům jak se jim zlíbí i když sami nic nedělají. Stejně tak ve fórech dávají lidi příspěvky o tom, že se má tazatel naučit anglicky, nebo že si má přečíst manuálovou stránku. A přitom man stránka na linuxu nikdy nikomu nepomohla, prootže je to jen seznam parametrů bez popisu a bez příkladů, podle které se nedá ani zjistit jak ten program používat. O proti man stránce např. ve freebsd, která mne vždy pomohla a podle které se dá velmi snadno pochopit co to dělá.

Udo:

Hello,

i cannot get Adminer 4-6-3 to run without a password. Seems that i do not understand how i should add the AdminerLoginPasswordLess plugin.

On my local development system i have many, many database and even more php applications using those databases. It is convenient to use no password for the local databases. If cannot use adminer without a password i have to change all configuration settings for all my applications to use a password. This is a lot of work.

Any change that this change is killed in the next version?

Best regards, Udo

ikona Jakub Vrána OpenID:

See https://www.adminer.org/en/password/ for detailed instructions.

There's no chance it will be killed in the next version.

Vložit komentář

Používejte diakritiku. Vstup se chápe jako čistý text, ale URL budou převedeny na odkazy a PHP kód uzavřený do <?php ?> bude zvýrazněn. Pokud máte dotaz, který nesouvisí s článkem, zkuste raději diskusi o PHP, zde se odpovědi pravděpodobně nedočkáte.

Jméno: URL:

avatar © 2005-2018 Jakub Vrána. Publikované texty můžete přetiskovat pouze se svolením autora. Ukázky kódu smíte používat s uvedením autora a URL tohoto webu bez dalších omezení Creative Commons. Můžeme si tykat. Skripty předpokládají nastavení: magic_quotes_gpc=Off, magic_quotes_runtime=Off, error_reporting=E_ALL & ~E_NOTICE a očekávají předchozí zavolání mysql_set_charset. Skripty by měly být funkční v PHP >= 4.3 a PHP >= 5.0.