Adminer 4.1.0

Asi největší novinkou právě vydané verze Admineru je ochrana proti pokusu o získání hesla k databázi hrubou silou. Adminer nově dovolí jen 30 neplatných pokusů o přihlášení za 30 minut (počítáno od prvního neplatného pokusu). Další pokusy (ať už se správným nebo špatným heslem) se ignorují, dokud nevyprší časový limit. Limit se vztahuje na IP adresu, nikoliv na uživatelské jméno. To je ze dvou důvodů:

  1. Útočník může zkoušet různá uživatelská jména, nemusí být zaměřen jen na jedno.
  2. Při vazbě na uživatelské jméno by útočník mohl oprávněnému uživateli zabránit v přihlášení úmyslným zadáváním špatných hesel (DoS).

Limit je poměrně velkorysý, protože mě rozčiluje, když mi některé služby třeba po třech neplatných pokusech o přihlášení ukážou dlouhý nos. Také jsem zohlednil, že stejnou IP adresu může používat více uživatelů, např. ze stejné firmy s proxy serverem. Pokud máte webový server umístěný za reverzní proxy a všechny požadavky chodí ze stejné IP adresy, tak je vhodné implementovat metodu Adminer::bruteForceKey() tak, aby vracela poslední část hlavičky X-Forwarded-For. Jinak vám hrozí DoS. Hlavička X-Forwarded-For se bohužel nemůže kontrolovat automaticky, protože jde triviálně podstrčit.

Přemýšlel jsem i o přidání CAPTCHA, což by zamezilo riziku DoS. reCAPTCHA ale používá privátní klíč, který by musel být součástí Admineru, a ostatní řešení jsou obvykle celkem snadno prolomitelná.

Data se ukládají do upload_tmp_dir nebo pokud není nastaven, tak do sys_get_temp_dir(). Tyto adresáře někdo pravidelně promazává, nicméně vzhledem k poměrně krátké platnosti dat by to nemělo moc vadit.

I přes tuto ochranu je vhodné přístup k Admineru omezit, např. v Apache pomocí Access Control. Případně pokud Adminer použijete někde jen jednorázově, tak ho zase po sobě smažte. Odkaz na Adminer také nikam zbytečně nedávajte a neumisťujte ho na snadno uhodnutelnou adresu. Pokud Adminer používají zákazníci vašeho hostingu, tak jim k němu umožněte přístup jen pokud jsou přihlášeni do administrace hostingu.

Další novinky

Jakub Vrána, Adminer, 18.4.2014, on-line

Diskuse

Ondřej Šejvl:

„Textarea se zvýrazňováním syntaxe bohužel v některých prohlížečích nefunguje stoprocentně“

Ve FF(28) zlobí, ale funguje kliknout jinam a pak znovu zpět do ní a přimlouvám se raději k ponechání, zvýrazňování se mi líbí :-)
18.4.2014 21:08:56

Patrik:

Fajn novinky, vďaka. Ktoré prehlidače pridávajú na konci riadku nezalomiteľnú medzeru?
18.4.2014 22:14:13

ikona Jakub Vrána:

Chrome, i když mně se to nikdy nepodařilo reprodukovat.
19.4.2014 21:19:30

Michal:

Oživuji možná přehlédnutý "asi bug"  http://php.vrana.cz/adminer-4-0-0.php#d-33204.
19.4.2014 00:47:25

Buksa:

Jakub preco sa tak bojis zrazu bezpecnosti admineru, ze ho treba skryvat? Bol nejaky reportovany prienik? Inak dakujem za dalsiu skvelu verziu admineru
19.4.2014 07:59:10

ikona Jakub Vrána:

To není „zrazu“. Adminer hlavičku Referer skrývá od té doby, co začal externí odkazy zpracovávat. Teď jsem naopak díky pokroku prohlížečů trochu povolil kohouty a pro skrytí Refereru se na prohlížeče spoléhám.

Žádný průnik reportovaný nebyl, nad bezpečností přemýšlím neustále. Ve vývoji Admineru to je ostatně priorita č. 1, viz http://www.adminer.org/.
19.4.2014 21:32:40

Viktor Mašíček:

Zvýraznění SQL je fajn. Ale odstranil bych ikonu u názvu tabulek. Je to matoucí, protože se to tváří jako znak, ale znak to není. A navíc text skáče, když člověk dopíše název tabulky (dokud není napsán název existující tabulky, není ikona zobrazena a po úplném dopsání názvu vše uskočí díky přidané ikoně).

Jinak dík za Adminer. Používám jej už několik let a je to paráda.
19.4.2014 19:57:15

ikona Jakub Vrána:

To asi způsobuje nějaký skin, základní verze to nedělá. Zkus ho prosím opravit (nejspíš změnou nebo přidáním nějakého selektoru) a poslat mi ho.
19.4.2014 21:50:45

Michal:

Adminer nezobrazuje počet bytů ve sloupci blob v SQLite, pokud provedu dotaz pomocí akce "select" z menu. Políčko v řádku je prázdné. Pokud stejný dotaz provedu ručně, tak se velikost zobrazuje.
23.4.2014 17:03:15

Michal:

Oživuji.
17.6.2014 23:29:27

ikona Jakub Vrána:

Už to zdá se funguje.
25.1.2018 08:37:19

Jan Tojnar:

Plánujete přidat podporu pro utf8mb4?
29.4.2014 22:15:36

ikona Jakub Vrána:

Adminer si seznam podporovaných kódování bere od MySQL, takže utf8mb4 podporuje, pokud ho podporuje MySQL. Je ale pravda, že při připojování do databáze posílá obdobu SET NAMES utf8, takže hádám, že znaky podporované jen v utf8mb4 se neuloží správně.
25.5.2014 13:56:23

Peter:

Ahoj, práve som narazil na problem s utf8mb4 a dogooglil som sa až tu. V tabuľkách používam charset utf8mb4, ale keďže je connection v adminerovi utf8, tak sa znaky nad U+FFFF nedajú ani zadať, ani prečítať.

Mohol by si prosím zmeniť štandardné connection charset z utf8 na utf8mb4 ? :-)
19.6.2014 20:16:39

ikona Jakub Vrána:

Jo, bude to v další verzi.
19.6.2014 21:15:04

ikona Jakub Vrána:

Už je to na GitHubu.
28.6.2014 04:05:20

jura:

Ahoj, prosím o radu jak na stránkách nastavit.
Aby se spustil adminer.php nebo editor.php
s automatickým přihlášením do databaze D a tabulky T v msql jen pro čtení (jméno Jmeno a heslo Heslo).

Pak už by si každý mohl hledat a třídit tabulku dle své potřeby.

Děkuji za pomoc

Jura
16.5.2014 01:52:31

ikona Jakub Vrána:

Stačí si uložit stránku s danou databází a tabulkou do bookmarků. Nutnost přihlašování lze vypnout metodou login().
25.5.2014 13:32:07

jura:

Lze nějak vypnout první sloupec v editor.php ?
(myslímí tím "upravit")

Bookmarků - je myšleno např. example.php ?
3.6.2014 22:05:55

ikona Jakub Vrána:

První sloupec momentálně vypnout nejde. Možná leda stylem.
15.9.2014 08:02:50

jura:

Lze nastavit zobrazení např. čtvrtého sloupce na zalomení textu a šířky např. 100 znaků ?
3.6.2014 22:17:11

ikona Jakub Vrána:

Mělo by to jít metodou selectVal().
10.6.2014 04:57:42

ikona Zemistr:

Zdravím :)
Jen jsem se chtěl zeptat, jak je na tom podpora SQLite3?
13.6.2014 01:19:32

ikona Jakub Vrána:

Běžně Adminer pro správu SQLite3 používám.
13.6.2014 03:58:53

ikona Zemistr:

Občas mi to vyhodilo error třeba při editaci tabulky. :/

A bude v něm i podpora třeba pro vytvoření oné databáze?
17.6.2014 02:38:20

ikona Jakub Vrána:

Popiš prosím přesně, jaký postup vedl k vyvolání jaké chyby.
28.6.2014 04:20:50

Milsa:

V zozname databáz by som navrhoval dať odkaz na obnovu zoznamu hore. Je to trochu nepraktické rolovať kvôli tomu dole. Ideálne by bolo to kešovanie zrušiť, ale autora o tom zrejme nepresvedčím. :-)
26.8.2014 17:58:47

ikona Jakub Vrána:

Od verze 4.1.0 už to nahoře je.
27.8.2014 18:17:08

Martin:

Dobrý den, díky za skvělý nástroj, ale jen jedna věc mi děsně chybí. Plánujete u pole pro SQL dotazy přidat názvy sloupců v dané tabulce (případně i s jejimi přenosy do pole dotazu) jako je to u phpmyadmin? Když píši dotazy, názvy si jen tak nevybavím. Díky moc
27.8.2014 20:35:30

ikona Jakub Vrána:

Momentálně ne. Udělal bych to formou autocomplete v editoru.
13.9.2014 21:02:30

David Grudl:

Hotový autocomplete je třeba tady https://github.com/dg/adminer-custom
14.9.2014 12:03:58

trestná smradlavice:

Zdravím. Šlo by na stránce "Změnit tabulku", třeba vedle "Rozdělit podle…" přidat analogicky "Seřadit podle…" s výběrem sloupců, kde se po výběru jednoduše zavolá ALTER TABLE tabulka ORDER BY sloupce;? phpMyAdmin to má. Ano, není to životně důležité, ale někdy je to k užitku.
12.10.2014 19:46:02

ikona Jakub Vrána:

Funguje to jen pro MyISAM tabulky, takže se to přidávat nechystám.
12.10.2014 21:58:19

pan Ďulák:

Zdravím.
Mám tabulku se sloupcem typu set s vícero hodnotami. Překvapilo mě, že při vkládání nové položky se nejdřív zobrazily všechny checkboxy a pak všechny možnosti - tedy ne checkbox1-možnost1, checkbox2-možnost2, ...
30.10.2014 22:26:33

ikona Jakub Vrána:

Popis není moc jasný, můžeš odkázat screenshot? Možná jde o problém nějakého skinu.
31.10.2014 17:24:54

pan Ďulák:

http://s16.postimg.org/jogygdp1h/adminer41…_problem.png
první řádek z adminer.css: /* Theme "Nette" for Adminer, (c) David Grudl */
1.11.2014 01:02:20

pan Ďulák:

po smazání šablony jsou už labely korektně za checkboxy, tedy zdá se, že to byl problém šablony
1.11.2014 01:04:21

ikona Jakub Vrána:

Můžeš se to prosím pokusit opravit?
3.11.2014 18:36:11

e-bola:

Mohla by u MySQL mezi operátory v sekci "Vyhledat:" být FIND_IN_SET()?
2.11.2014 19:24:04

ikona Jakub Vrána:

Doplnil jsem.
1.2.2018 15:26:01

David Klouček:

Asi jsem našel bug. Když edituju záznam, tak se u sloupce typu POINT vytváří input typu number a tím pádem neni možný zadat POINT(x y).
10.11.2014 21:42:29

ikona Jakub Vrána:

Zkus aktuální verzi nebo verzi na GitHubu, podle mě to už je dávno opravené.
11.11.2014 18:02:07

trestná smradlavice:

Zdravim.
Praktický příklad, se kterým nyní potýkám: Existuje nějaké rozšíření pro Adminer, které by dokázalo omezit přístup k němu jen ze seznamu povolených IP?
12.12.2014 23:08:10

ikona Jakub Vrána:

Ne, ale asi by bylo celkem jednoduché udělat.
14.12.2014 01:12:00

trestná smradlavice:

Zdravím,
Poslušně hlásím bug:
Cvičně jsem si zkusil použít v názvu jedné tabulky nestandardní znaky - její jméno je: `problematic-.<?a=1&lt;&b[]='"%``)-- /*@\## table`.
Adminer ji umí správně zobrazit v navigaci, procházet ji, zobrazit a měnit její strukturu, ale jediné, co selže, je zobrazení jejího počtu řádků, dat, indexů atd. v přehledu databáze, jíž je součástí - tam zobrazí jen otazníky.
9.1.2015 16:56:56

ikona Jakub Vrána:

Díky za upozornění, byl tam double escaping. Opravil jsem to.
12.1.2015 18:48:02
avatar © 2005-2024 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.